額外知識點:在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)