演算法基礎 氣泡排序筆記

2022-09-07 06:27:08 字數 781 閱讀 3407

逐次比較。即一次比較兩個數,若它們的順序錯誤,則它們交換;重複進行,直到沒有需要交換為止。以公升序排序為例:

1、比較相鄰數字的大小,若第乙個數比第二個數大,則相互交換;

2、對每一對相鄰的數作相同的工作,那麼最後的數應該是最大的數;

3、針對所有數(除了最後乙個)重複上述步驟,直到沒有任何一對數字需要比較為止。

(需要注意的是,第3條中所謂的「最後乙個」是指前幾步中已經處理過的最大的數,而不是整個數列的最後乙個數)

例如,將下列數列用氣泡排序法從小到大重新排列;

49 38 65 97 76 13 27 49

每次排序後數列的變化如下:

第一趟排序:38 49 65 76 13 27 49 97

第二趟排序:38 49 65 13 27 49 76 97

第三趟排序:38 49 13 27 49 65 76 97

第四趟排序:38 13 27 49 49 65 76 97

經過一系列過程,最終數列次序為:13 27 38 49 49 65 76 97.

#include void bubllesort(int arr, int len)

} }}int main(int argc, char *ar**) ;

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

bubllesort(arr, 7);

printf("\n");

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

return 0;

}

演算法基礎 氣泡排序

從數列第乙個數字開始,與相鄰的後一位數字比較,如果前一位數字比後一位大,則置換它們的位置,一輪下來排到最後的是最大的數字,直到數列完全有序。要點 1.每輪排序最大的數字會被置換到最後,下一輪就不需要再對比這個數字了。因此第一輪需要對比n 1次,第二輪需要n 2次,第x輪只需要對比n x次。2.如果數...

演算法基礎 氣泡排序

氣泡排序是一種經典的排序演算法,可能是我們學習過程中學習到的第乙個排序演算法。氣泡排序,顧名思義,一輪一輪把小元素從後面替換到前面 或者是大元素逐步替換到後面 的一種演算法。假如有乙個長度為10的陣列array,程式會進行n輪掃瞄,第一輪掃瞄會從array 0 到array 9 進行掃瞄,若存在前面...

基礎演算法 氣泡排序

氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的...