"""
希尔算法:指定步长,比较交换,步长缩小
"""
def shell_sort(alist):
"""希尔排序"""
n = len(alist)
"""n = 9 gap = 4"""
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 = [54, 65, 23, 46, 76, 45, 92, 14]
print(li)
shell_sort(li)
print(li)
数据结构之python实现希尔排序shell sort
最新推荐文章于 2023-09-06 11:03:55 发布