def shell_sort(alist):
'''希尔排序'''
# gap 按照折半来取
# n = 9
n = len(alist)
# gap = 4
gap = n // 2
# gap变化到0之前,插入算法执行次数
while gap >= 1:
# 插入算法,与普通的插入算法的区别就是gap步长
for j in range(gap, n):
# j = [gap +1, gap+2,...]
i = j
while i > 0:
if alist[i] < alist[i-gap]:
alist[i], alist[i-gap] = alist[i-gap], alist[i]
i -= gap
# 缩短gap步长
gap //= 2
排序算法-希尔排序
最新推荐文章于 2025-04-16 15:19:50 发布
本文深入解析了希尔排序算法的实现过程,详细介绍了通过逐步减小增量进行部分插入排序的方法,最终达到整个列表排序的目的。文章提供了具体的Python代码示例,展示了希尔排序如何在不同数据集上工作。
1536

被折叠的 条评论
为什么被折叠?



