氣泡排序以及其原理

2021-10-10 03:03:38 字數 3049 閱讀 9621

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 減小無序部分的長度,迴圈第二步,直到陣列...