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]