python实现希尔排序
#4.希尔排序
#①第一层循环 gap折半 直到gap=1
#②二层三层循环直接插入排序
def shell_sort(L):
gap = len(L)//2
while gap>= 1:
for i in range(gap,len(L)):
for j in range(i-gap,-1,-gap):
if L[j]>L[j+gap]:
L[j] , L[j + gap] = L[j+gap],L[j]
gap = gap//2
return L
L=[8,7,6,5,4,3,2,1]
print(shell_sort(L))
结果#[1, 2, 3, 4, 5, 6, 7, 8]