常見排序演算法之氣泡排序
阿新 • • 發佈:2019-01-06
常見排序演算法之氣泡排序
氣泡排序(Bubble Sort),是一種較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從小到大、首字母從A到Z)錯誤就把他們交換過來。
- 氣泡排序演算法的運作如下:
- 比較相鄰的元素。如果第一個比第二個大(升序),就交換他們兩個。
- 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
- 針對所有的元素重複以上的步驟,除了最後已選出的元素。
- 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。(每迴圈一次從未排序元素中選出一個最大者)
程式碼實現
def bubble_sort(alist):
for j in range(len(alist)-1,0,-1):
# j表示每次遍歷需要比較的次數,是逐漸減小的
for i in range(j):
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
li = [24,16,18,36,12,45,8]
bubble_sort(li)
print(li)
時間複雜度
- 最優時間複雜度:O(n)
- 最壞時間複雜度:O(n2)
- 穩定性:穩定