1. 程式人生 > >排序演算法----氣泡排序

排序演算法----氣泡排序

氣泡排序是一種簡單的排序演算法,演算法的原理如下:

     1. 比較相鄰元素,如果第一個比第二個大,就交換他們兩者之間的順序

     2. 對每一對相鄰元素作相同工作,從開始第一對到結尾最後一對,第一次完畢後,最後的元素就是最大值。

     3. 針對所有元素重複上述操作,除了最後一個

     4. 持續每次對越來越少的元素重複上面操作,直到沒有任何一對數字需要比較。

例如有一個數列[4,2,6,5,3,9],氣泡排序步驟如下:

 

用python3程式碼實現

li = [10, 30, 76, 5, 18, 0, 24, 8, 16, 66, 92, 84, 53, 19, 50]

def bubbling_sorted(li):
    for i in range(len(li) - 1):  # 外層迴圈決定需要排序的輪次
        count = 0 # 設定標誌位
        for j in range(0, len(li) - i - 1): # 內層迴圈決定需要比較的次數
            if li[j] < li[j + 1]:
                li[j], li[j + 1] = li[j + 1], li[j]
                count += 1 # 如果count != 0,說明需要交換兩者
        if count == 0:
            return li
    return li