冒泡排序可谓是从入门编程世界时接触的,工作这几年,基本没用过冒泡排序,不过冒泡排序重在其思想:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。
代码如下:
、
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
、
欢迎大家指教、交流。
网友评论