本文主要是介绍排序算法——希尔(shell)排序Python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
"""
shell排序:每一轮先将数据分组,在分组里面对数据进行插入排序,依次进行增量式分组(每一次分组,组数会减少,但是每个组内的元素会增多),
直到最后每一个数与其邻居进行比较为止。
在每个组进行插入排序时,不同的组是交叉进行的,可以参考代码for i in range(gap, len(l))。
"""
l = [2, 9, 10, 11, 3, 7, 4, 0, 6, 11, -7]
gap = int(len(l)/2)
while gap > 0:for i in range(gap, len(l)):temp = l[i]j = i - gapwhile j >= 0 and l[j] < temp:l[j + gap] = l[j]j = j - gapl[j + gap] = tempif gap == 1:breakelse:gap = max(1, int(gap/2))print(l)
[11, 11, 10, 9, 7, 6, 4, 3, 2, 0, -7]
这篇关于排序算法——希尔(shell)排序Python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!