冒泡排序字符串
2018-03-09 15:07
63 查看
用冒泡排序可以排序任意数据类型,这次用冒泡排序排序字符串。
思路与一般的冒泡排序思路是大致相同的。
注意的点:
第一:比较字符串大小时不能用<>=,应该用strcmp函数比较
第二:交换字符串,应该先创建一个足够大的临时空间,使用strcpy函数进行拷贝达到交换的目的。
第三:我考虑将多个字符串放入二维数组中。
代码:
此处比较的字符串大小,默认是先比较字符的ascii码。
思路与一般的冒泡排序思路是大致相同的。
注意的点:
第一:比较字符串大小时不能用<>=,应该用strcmp函数比较
第二:交换字符串,应该先创建一个足够大的临时空间,使用strcpy函数进行拷贝达到交换的目的。
第三:我考虑将多个字符串放入二维数组中。
代码:
#include <stdio.h> #include <string.h> void Swap(char *px,char *py) { char tmp[32]={}; strcpy(tmp,px); strcpy(px,py); strcpy(py,tmp); } int main() { char arr[][32]={ {"hello"}, {"world"}, {"bit"} }; int i=0,j=0; int flag=0; int len=sizeof(arr)/sizeof(arr[0]); for(i=0;i<len-1;i++) { for(j=0;j<len-i-1;j++) { if(strcmp(arr[j],arr[j+1])>0) Swap(arr[j],arr[j+1]); flag=1; } if(flag==0) break; } for(i=0;i<len;i++) { printf("%s\n",arr[i]); } return 0; }
此处比较的字符串大小,默认是先比较字符的ascii码。
相关文章推荐
- c++实现waveinopen录音功能
- Oracle学习第三天
- QT五子棋项目详解之一:界面绘制
- Android recyclerView/listview的点击变色、点击换背景颜色
- 黑客攻击者邮件收集汇总研究,不断更新中2018
- 深度学习中模型的参数选择
- 【TCP/IP】 IP地址与路由
- js图片悬浮
- 【转】函数式语言的宗教
- React表单应用--不可控组件
- need to read
- 排序算法之冒泡排序
- Relation Networks for Object Detection解读
- Laravel5.5 session 的配置及使用示例讲解
- redis实现分布式
- 欧拉角的弊端和四元数的优势
- XML中schema约束
- 输入框的测试用例
- Cimatrone11安装破解教程
- 一个大三程序员的日常