冒泡法排序的相关问题
2013-11-19 10:44
204 查看
/***************************************************** * 用冒泡法进行排序遇到的一系列问题 * * * * * *****************************************************/ #include<stdio.h> int main(void) { int a[10],i,j,b=0,flag; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]<a[j+1]) { b=a[j]; a[j]=a[j+1]; a[j+1]=b; } for(i=0;i<10;i++) printf("%d\n",a[i]); } //注意输入的时候不能用逗号隔开,逗号视为一个字符,会使得运算出错!!! //该算法是比较常规的算法,但是有一个弊病,就是如果数据正好是顺序时,也会照样执行,因此可以进行进一步的改进 #include<stdio.h> void main() { int a[10],i,j,b=0,flag=0; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) { flag=0; for(j=0;j<9-i;j++) if(a[j]<a[j+1]) { b=a[j]; a[j]=a[j+1]; a[j+1]=b; flag=1; } if (flag==0) break; } for(i=0;i<10;i++) printf("%d\n",a[i]); } //上面的改进方法避免了顺序时重复的比较,节约时间 //对字符进行冒泡法排序 #include<stdio.h> int main(void) { char a[10],x; int i,j; for(i=0;i<10;i++) scanf("%c",&a[i]); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]<a[j+1]) { x=a[j]; a[j]=a[j+1]; a[j+1]=x; } for(i=0;i<10;i++) printf("%c\n",a[i]); } //这里输入字符时,空格和回车都会视为字符,很纠结,可以直接连续输入,或者以字符串的形式输入! #include<stdio.h> int main(void) { char a[11],x; int i,j; gets(a); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]<a[j+1]) { x=a[j]; a[j]=a[j+1]; a[j+1]=x; } for(i=0;i<10;i++) printf("%c\n",a[i]); } //可以实现字符的冒泡排序 #include<stdio.h> #include<string.h> int main(void) { char str[5][10],a[2][10]; int i,j,m; for(i=0;i<5;i++) gets(str[i]); for(i=0;i<4;i++) for(j=0;j<4-i;j++) for(m=0;m<10;m++) if(str[j][m]<str[j+1][m]) { strcpy(a[0],str[j]); strcpy(str[j],str[j+1]); strcpy(str[j+1],a[0]); } for(i=0;i<5;i++) { puts(str[i]); printf("\n"); } } //一维数组还真不好实现咧,二维数组可以用双重for循环尝试一下! //有点问题,就是遇到不等长的字符数串比较的时候会出现错误,等待进一步修改。 //其实比较字符串,排序可以调用函数,strcmp(str1,str2),str1>str2时,返回值1,str==str2时,返回值0,str1<str2时,返回值-1. #include<stdio.h> #include<string.h> int main(void) { char str[5][10],a[2][10]; int i,j,flag,k=0; for(i=0;i<5;i++) gets(str[i]); for(j=0;j<4;j++) { flag=0; for(i=0;i<4-j;i++) { k=strcmp(str[i],str[i+1]); if(k==-1) { strcpy(a[0],str[i]); strcpy(str[i],str[i+1]); strcpy(str[i+1],a[0]); flag=1; } } if(flag==0) break; } for(i=0;i<5;i++) puts(str[i]); }
相关文章推荐
- [转]Tomcat SSL配置及Tomcat CA证书安装
- 对文件或文件夹进行压缩解压加密解密
- 强内聚、松耦合
- C++拾遗
- (Relax 数论 1.1)POJ 2429 GCD & LCM Inverse(已知GCD、LCM,反求a、b)
- KVM安装工作记录
- 利用NIO建立Socket服务器
- solr4.5 mmseg4j 分词器配置
- Oracle安装――LINUX 操作系统安装图解
- 28个 HTML5新特性
- squid3.0 隐藏 hearder 设置
- vim 使用
- tcpdump
- Hibernate模板的使用问题
- MVC上传图片
- android 性能优化
- cocos2d-x:cocos2d-x坐标系详解
- 记录备忘,Windows2003 vdi 转 img后蓝屏的解决方法
- Android4.2.2 Gallery2源码分析(1)——从布局入手 .
- java构造方法