python实现希尔排序
2017-10-12 20:11
471 查看
希尔排序(有时称为“递减递增排序”)通过将原始列表分解为多个较小的子列表来改进插入排序,每个子列表使用插入排序进行排序。 选择这些子列表的方式是希尔排序的关键。不是将列表拆分为连续项的子列表,希尔排序使用增量i(有时称为 gap),通过选择 i 个项的所有项来创建子列表。
时间复杂度
最优时间复杂度:根据步长序列的不同而不同
最坏时间复杂度:O(n2)
稳定想:不稳定
def shell_Sort(alist): sublistcount = len(alist)//2 while sublistcount > 0: for startposition in range(sublistcount): InsertionSort(alist,startposition,sublistcount) print("After increments of size",sublistcount, "The list is",alist) sublistcount = sublistcount // 2 def InsertionSort(alist,start,gap): for i in range(start+gap,len(alist),gap): currentvalue = alist[i] position = i while position>=gap and alist[position-gap]>currentvalue: alist[position]=alist[position-gap] position = position-gap alist[position]=currentvalue alist = [23,45,11,67,44,98,69,57,26,58] shell_Sort(alist) print(alist)
时间复杂度
最优时间复杂度:根据步长序列的不同而不同
最坏时间复杂度:O(n2)
稳定想:不稳定
相关文章推荐
- 排序算法的C++ && Python实现---希尔排序(缩小增量排序)
- python实现希尔排序(已编程实现)
- Python实现希尔排序
- 希尔排序 Python实现
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- python实现希尔排序
- python实现希尔排序
- 排序算法总结(冒泡排序、直接插入排序、希尔排序)(python实现)
- 八大排序算法的python实现(二)希尔排序
- 八大排序算法 Java、Python、C++实现 -- 希尔排序
- python-实现希尔排序
- 希尔排序--Python实现
- 用python实现希尔排序(shell_sort)
- 希尔排序的Python实现
- 希尔排序Python实现
- 决策树与随机森林相关概念及其Python实现
- Python练习3-XML-RPC实现简单的P2P文件共享
- Python实现Tab自动补全和历史命令管理的方法
- Python 责任链模式实现
- Python GUI--Tkinter简单实现个性签名设计