"""
希尔排序
gap = 子序列之间的间距
"""
def shell_sort(sort_list):
n = len(sort_list)
# 初始排序的gap
gap = n // 2
while gap > 0:
for i in range(gap, n):
j = i
# 根据gap来进行比较,比较完后,下标减一,继续比较,直到比较到序列头。
while j >= gap and sort_list[j-gap] > sort_list[j]:
sort_list[j - gap], sort_list[j] = sort_list[j], sort_list[j-gap]
j -= gap
gap = gap // 2
来源:https://www.cnblogs.com/sometingintheway/p/12026812.html