八大排序演算法之冒泡法

2021-07-09 18:26:05 字數 742 閱讀 2130

氣泡排序(bubble sort),是一種電腦科學領域基本的排序演算法。

它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。在不斷的遍歷過程中,大數不斷「沉底」,小數則不斷「上浮」,因此稱之為冒泡法。

依次比較數列中的相鄰元素,若當前元素數值大於後乙個元素,則二者交換

單輪比較之後,數列中最大的數沉底,放置在數列的最後

重複上述比較,因大數已經沉底,故每次比較,最後乙個不參與

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。此時大數沉底,小數上浮,形成有序數列

最好的時間複雜度為o(n)

最壞的時間複雜度,若初始檔案是反序的,需要進行 n-1趟排序。每趟排序要進行 n-1-i次關鍵字的比較(1≤i≤n-1),且每次比較都必須移動記錄三次來達到交換記錄位置。在這種情況下,其時間複雜度為o(n`2)

冒泡法排序是一種穩定的排序

void bubble(int *a,int n)

}}

測試**:

int main()

; bubble(a,11);

for(i=0;i<11;i++)

printf("%d\t",a[i]);

return

0;}

**測試通過。

這裡可以看到演算法的動態演示。

八大排序演算法之氣泡排序

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。def bubble sort l...

八大排序演算法 氣泡排序

在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。include include 常規氣泡排序 void bubblesort int r,int n ...

八大排序演算法 氣泡排序

氣泡排序是c語言中演算法的簡單實現 什麼是冒泡 他重複的走訪要排序的序列,一次比較倆個元素,如果順序錯誤就交換,知道沒有必要在交換就完成排序。例子 原序列 5 3 9 6 8 2 7 第一趟 3 5 6 8 2 7 9 第二趟 3 5 6 2 7 8 9 第三趟 3 5 2 6 7 8 9 第四趟 ...