希爾排序

alist=[2,4,6,1,3,7,9,2,5,13,654,43,234,756,8,2343,423]
gap=len(alist)//2
#gap>0時,插入算法執行的次數
while gap>0:
    #希爾排序與插入排序的區別在於起點與步長
    for i in range(gap, len(alist)):
        for j in range(i, 0, -gap):
            if alist[j] < alist[j - 1]:
                alist[j], alist[j - 1] = alist[j - 1], alist[j]
                print(alist)
    gap//=2
print(alist)
[1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 13, 43, 234, 423, 654, 756, 2343]

 

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