數據結構-3.簡單算法python實現:希爾排序shell_sort(又稱:縮小增量排序)

額外知識點:在windows10中,除了shell(cmd),power_shell,又加入了一個對於無關圖的虛擬環境shell,需要自己開啓

python3.5

最優時間複雜度:n的一點三次方

最壞時間複雜度:n²

穩定性:不穩定

1.希爾排序思想:

插入排序變種,設定一個gap(距離),根據距離來將數組分成數個間隔gap的小數組,對小數組進行插入排序

2.python代碼實現

def shell_sort(alist):
    '''希爾排序'''
    n = len(alist)
    gap = n//2

    while gap > 0:

        for j in range(gap,n):
            i = j
            while i > 0:
                if alist[i] < alist[i-gap]:
                    alist[i],alist[i-gap] = alist[i-gap],alist[i]
                    i -= gap
                else:
                    break
        gap//=2

if __name__=='__main__':
    li = [17, 99, 31, 26, 44, 54, 55, 77, 93]

    value=shell_sort(li)
    print(li)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章