13 希尔排序
# 希尔排序 插入排序的改进版
def shell_sort(a):
n = len(a)
gap = n // 2
while gap >= 1:
for i in range(gap, n):
for j in range(i, 0, -gap):
if a[j] < a[j - gap]:
a[j], a[j - gap] = a[j - gap], a[j]
else:
break
gap = gap // 2
if __name__ == '__main__':
a = [54, 26, 93, 17, 77, 31, 44, 55, 20]
shell_sort(a)
for i in a:
print(i, end=" ")