54 , 63, 25, 15 , 2 >>進行第一次排序:進行第二次排序54 和 63 比較 54< 63 -----------> 54, 63
63 和 25 比較 25 < 63 ----------> 54, 25 , 63
63 和 15 比較 ---------------------> 54, 25, 15, 63
63 和 2 比較 -----------------------> 54, 25 , 15, 2, 63
25 15 2 54 63進行第三次排序
15 2 25 54 63進行第四次排序
2 15 25 54 63這裡我們可以看到整個陣列裡的元素已經按照公升序要求排序完成;
5個元素分步要進行4次排序。
//氣泡排序法 將第i個數和i+1個數進行比較,把大的數放在arr[i]裡,把小的數放在arr[i+1]裡
intmain()
;printf
("氣泡排序前:");
for(
int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)//列印為排序前的陣列
printf
("\n");
//第一次排序
printf
("第1次排序;\n");
for(
int i =
0; i <
(sizeof
(arr)
/sizeof
(arr[0]
)-1)
; i++)}
for(
int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)printf
("\n");
//列印第一次排序結果;
//第二次排序
printf
("第2次排序;\n");
for(
int i =
0; i <
(sizeof
(arr)
/sizeof
(arr[0]
)-1)
; i++)}
for(
int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)//列印第二次排序結果
// 第三次排序
printf
("\n");
printf
("第3次排序;\n");
for(
int i =
0; i <
(sizeof
(arr)
/sizeof
(arr[0]
)-1)
; i++)}
for(
int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)printf
("\n");
//列印第三次排序結果
//第四次排序
printf
("第4次排序;\n");
for(
int i =
0; i <
(sizeof
(arr)
/sizeof
(arr[0]
)-1)
; i++)}
for(
int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)printf
("\n");
//第四次列印結果
//程式執行結果為
氣泡排序前:54
6325152
第1次排序;
5425152
63第2次排序;
2515254
63第3次排序;152
2554
63第4次排序;215
2554
63請按任意鍵繼續.
..
int
main()
;printf
("氣泡排序前:");
for(
int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)printf
("\n");
printf
("改進後的排序結果:\n");
for(
int j =
0; j <
sizeof
(arr)
/sizeof
(arr[0]
)-1; j++)}
}for
(int i =
0; i <=
sizeof
(arr)
/sizeof
(arr[0]
)-1; i++
)printf
("\n");
system
("pause");
return0;
}//執行結果為
氣泡排序前:54
6325152
改進後的排序結果:215
2554
63請按任意鍵繼續.
..
資料結構 氣泡排序以及其優化
我以前一直對冒牌排序不以為然,作為最容易寫出來的排序.直到前兩天我被人問到乙個問題,讓我把普通的氣泡排序最好的時間複雜度 優化到o n 當然氣泡排序最壞時間複雜度o n 2 這個沒有辦法改變.我們只能盡量優化它的過程讓它少走幾次迴圈.其實仔細做起來,我 在寫程式有時候還是太片 面了不能夠考慮到最優的...
排序 氣泡排序及其優化
氣泡排序算是初學者都會寫的吧,我的 竟然沒有,這次就跟著排序一起發出來吧!3.氣泡排序優化 氣泡排序 void bubblesort 1 int array,int size 2.1 優化方案void bubblesort 1 int array,int size if ischange retur...
氣泡排序及其改進
1.排序思想 氣泡排序也是非常簡單的排序演算法,易於理解。要點 1 也把陣列看作有序和無序部分,初始時將整個陣列視為無序 2 每次遍歷陣列中的無序部分,且兩兩比較,並將兩者中較大的元素置於後面一位,則一趟遍歷完成後,最大元素自然 沉到 無序部分的最後一位 3 減小無序部分的長度,迴圈第二步,直到陣列...