额外知识点:在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)