1. 程式人生 > >經典排序算法(1) - 冒泡排序Bubble Sort

經典排序算法(1) - 冒泡排序Bubble Sort

中間 view tro 規模 static 最大的 rev 數組 代碼實現

冒泡排序(Bubble Sort)是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。
運作步驟如下:

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

  3. 針對所有的元素重復以上的步驟,除了最後一個。

  4. 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
    Java代碼實現如下

    :

    public static void bubbleSort(int[] numbers) {
        int temp; // 記錄臨時中間值
        int size = numbers.length; // 數組大小
        for (int i = 0; i < size - 1; i++) {
            for (int j = 0; j < size - i - 1; j++) {
                if (numbers[j] > numbers[j + 1]) { // 交換兩數的位置
                    temp = numbers[j + 1];
                    numbers[j 
    + 1] = numbers[j]; numbers[j] = temp; } } } }

冒泡排序最壞情況的時間復雜度是O(n2),是一種穩定排序算法排序冒泡排序適用於,規模較小的數組排序。

經典排序算法(1) - 冒泡排序Bubble Sort