1. 程式人生 > >python排序之氣泡排序

python排序之氣泡排序

氣泡排序

思想:每次比較相鄰兩個元素,如果它們的順序錯誤,就對換它們的位置。

每一趟只能將一個元素歸位,如果有n個元素需要進行排序,則需要將n-1個元素進行歸位,即進行(n-1)躺操作,已經歸位的不再比較。

最優時間複雜度:O(n) 【表示便利一次沒有發現任何可以交換的元素,排序結束】

最壞時間複雜度:O(n*n)

穩定性:穩定

程式碼:

def bubble_sort(alist):
    n=len(alist)
    for i in range(n-1):      #進行n-1躺排序
        count=0
        for j in range(n-1-i):      #已經歸位的不再進行比較
            if alist[j]>alist[j+1]:
                alist[j],alist[j+1]=alist[j+1],alist[j]
                count+=1
        if count==0:       #最優情況
            return