算法-冒泡排序

冒泡排序可谓是从入门编程世界时接触的,工作这几年,基本没用过冒泡排序,不过冒泡排序重在其思想:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。


代码如下:

int a[100],t,m;       

 //随意输入6个数        

printf("请随意输入六个数字:\n");        

for (int i=0; i<6; i++) {            

scanf("%d",&a[i]);       

 }      

 //每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。       

 //注意这里数组中有6个元素,只需要比较5次就够了前五个数都进行了比对,最后一个就不需要比对了        for (int i=0; i<6-1; i++) {           

 //外循环没循环一次,内循环就少循环i+1次            

for (int j=0;j<6-1-i; j++) {                

//由大到小排列,把最小的放后面                

if (a[j]<a[j+1]) {//由大到小排列,把最小的放后面

m = a[j];

a[j] = a[j+1];

a[j+1] = m;

}

}

}

for (int i=0; i<6; i++) {

printf("%d ",a[i]);

}

printf("\n");

//由大到小排列结果:87 76 65 54 45 34

printf("由小到大排列结果:");

for (int i=0; i<6-1; i++) {

//外循环每比对一次,内循环次数就少i+1次,因为有小到大排列

for (int j=0;j<6-1-i; j++) {

//由小到大排列,把最大的放后面

if (a[j]>a[j+1]) {

m = a[j];

a[j] = a[j+1];

a[j+1] = m;

}

}

}

for (int i=0; i<6; i++) {

printf("%d ",a[i]);

}

printf("\n");

//由小到大排列结果:34 45 54 65 76 87

欢迎大家指教、交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容