# 希尔排序(不稳定):
def shell_sort(alist):
n = len(alist)
gap = n // 2
while gap >= 1:
for j in range(gap, n):
i = j
while(i - gap >= 0):
if alist[i] < alist[i - gap]:
alist[i], alist[i - gap] = alist[i - gap], alist[i]
i -= gap
else:
break
# 缩短gap
gap //= 2
if __name__ == '__main__':
list = [12, 3, 5, 15, 67, 35, 22, 69, 78]
print("原始序列为:%s" % list)
shell_sort(list)
print("排序后的序列为:%s" % list)