python数据结构与算法第十一天希尔排序
Posted liuzhiqaingxyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据结构与算法第十一天希尔排序相关的知识,希望对你有一定的参考价值。
1.希尔排序的原理
2.代码实现
def shell_sort(alist): n = len(alist) # 初始步长 gap = n / 2 while gap > 0: # 按步长进行插入排序 for i in range(gap, n): j = i # 插入排序 while j>=gap and alist[j-gap] > alist[j]: alist[j-gap], alist[j] = alist[j], alist[j-gap] j -= gap # 得到新的步长 gap = gap / 2 alist = [54,26,93,17,77,31,44,55,20] shell_sort(alist) print(alist)
注意:
(1)希尔排序采用的是先拆分后合并的思想,拆分的时候是间隔拆分
3.时间复杂度
最优时间复杂度:根据步长序列的不同而不同
最坏时间复杂度:O(n2)
稳定想:不稳定
以上是关于python数据结构与算法第十一天希尔排序的主要内容,如果未能解决你的问题,请参考以下文章