算法-冒泡排序

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


算法-冒泡排序_第1张图片

代码如下:

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]

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

欢迎大家指教、交流。

你可能感兴趣的:(算法-冒泡排序)