冒泡排序

  1. 介紹

冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重複地遍歷要排序的數列,一次比較兩個元素,若是他們的順序錯誤就把他們交換過來。遍歷數列的工做是重複地進行直到沒有再須要交換,也就是說該數列已經排序完成。這個算法的名字由來是由於越小的元素會經由交換慢慢「浮」到數列的頂端。python

  1. 冒泡排序算法的運做以下:
  • 比較相鄰的元素。若是第一個比第二個大(升序),就交換他們兩個。
  • 對每一對相鄰元素做一樣的工做,從開始第一對到結尾的最後一對。這步作完後,最後的元素會是最大的數。
  • 針對全部的元素重複以上的步驟,除了最後一個。
  • 持續每次對愈來愈少的元素重複上面的步驟,直到沒有任何一對數字須要比較。
  1. coding
def BubbleSort(arr):
    # 1. 計算數組長度
    n = len(arr)
    # 2. 迭代n-1次
    for i in range(n):
    # 3. 每次迭代比較的次數逐次減1
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1] :
                arr[j], arr[j+1] = arr[j+1], arr[j]


arr = [64, 34, 25, 12, 22, 11, 90]
BubbleSort(arr)
print(arr)
  1. 時間複雜度
  • 最優時間複雜度:O(n) (表示遍歷一次發現沒有任何能夠交換的元素,排序結束。)
  • 最壞時間複雜度:O(n2)
  • 穩定性:穩定
  1. 參考Python黑馬教程
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息