冒泡排序

一、冒泡排序的原理

冒泡排序:將待排序的一組數分爲有序區間和無序區間。先在無序區間通過相鄰數的比較,將無序區間的最大數依次冒泡到最上面,持續這個過程,直到整組數有序。

二、圖解分析

以[3, 0, 5, 4, 1, 2]爲例,進行冒泡排序。

第一趟:從下往上依次兩兩比較,將最大數交換到最上面,第一趟完成後橙色部分爲已排好的部分。
冒泡排序

第二趟:比較方法同上,橙色部分爲排好的區間,我們發現有序區間比第一趟的有序區間多一個數。
冒泡排序

第三趟:
冒泡排序

第四趟:
冒泡排序

第五趟:
冒泡排序

最後排好的整組數:
冒泡排序
我們發現,每次排好序的區間數的個數都比前一趟多一個,所以待排序的6個數共循環了5次。

三、代碼實現

public static void bubbleSort(int[] array) {   
        for(int bound = 0; bound < array.length - 1; bound++) {  //外層循環(數組長度-1)次
                for(int cur = 0; cur < array.length - 1 -bound; cur++) { //內層循環,有序區間不用再循環
                        if (array[cur] > array[cur + 1]) {
                                int tmp = array[cur];
                                array[cur] = array[cur + 1];
                                array[cur + 1] = tmp;
                        }
                }
        }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章