python排序演算法的實現-插入

yupeng發表於2013-11-08

1.演算法:

  設有一組關鍵字{ K 1 , K 2 ,…, K n };排序開始就認為 K 1 是一個有序序列;讓 K 2 插入上述表長為 1 的有序序列,使之成為一個表長為 2 的有序序列;然後讓 K 3 插入上述表長為 2 的有序序列,使之成為一個表長為 3 的有序序列;依次類推,最後讓 K n 插入上述表長為 n-1 的有序序列,得一個表長為 n 的有序序列。

2.python程式碼

def insertion_sort(list2):
    for i in range(1, len(list2)):
        save = list2[i]
        j = i
        while j > 0 and list2[j - 1] > save:
            list2[j] = list2[j - 1]
            j -= 1
        list2[j] = save

結果:[2, 3, 4, 21, 33, 44, 45, 67]

3.時間複雜度:O(n*n)

 

相關文章