冒泡排序可謂是從入門編程世界時接觸的椎侠,工作這幾年姿染,基本沒用過冒泡排序伐憾,不過冒泡排序重在其思想:每次比較兩個相鄰的元素勉痴,如果它們的順序錯誤就把它們交換過來。
代碼如下:
树肃、
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++) {? ? ? ? ? ?
?//外循環(huán)沒循環(huán)一次,內循環(huán)就少循環(huán)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++) {
//外循環(huán)每比對一次,內循環(huán)次數就少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
、
歡迎大家指教屋群、交流闸婴。