python实现希尔排序
来源:互联网 发布:淘宝如何做展现词 编辑:程序博客网 时间:2024/06/05 14:24
希尔排序(有时称为“递减递增排序”)通过将原始列表分解为多个较小的子列表来改进插入排序,每个子列表使用插入排序进行排序。 选择这些子列表的方式是希尔排序的关键。不是将列表拆分为连续项的子列表,希尔排序使用增量i(有时称为 gap),通过选择 i 个项的所有项来创建子列表。
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 // 2def 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]=currentvaluealist = [23,45,11,67,44,98,69,57,26,58]shell_Sort(alist)print(alist)
时间复杂度
最优时间复杂度:根据步长序列的不同而不同
最坏时间复杂度:O(n2)
稳定想:不稳定
阅读全文
0 0
- 希尔排序--Python实现
- python实现希尔排序
- 希尔排序 Python实现
- python实现希尔排序
- 希尔排序Python实现
- Python实现希尔排序
- python实现希尔排序
- 希尔排序的Python实现
- 希尔排序算法 Python实现
- 尝试使用python实现希尔排序算法
- 用python实现希尔排序(shell_sort)
- [排序] 希尔排序(Python)
- 排序算法—希尔排序算法分析与实现(Python)
- 八大排序算法 Java、Python、C++实现 -- 希尔排序
- 八大排序之希尔排序算法-python实现
- [Python-*-算法]希尔排序
- Python 希尔排序
- Python 希尔排序
- 开个博客记录一下球的成长
- 179. Largest Number
- 假身份证的判定
- Spring(AbstractRoutingDataSource)实现动态数据源切换
- Dijkstra算法模板
- python实现希尔排序
- Intellij添加Maven模块
- 3.2 Linux C程序解析
- java8之行为参数化(二)
- 习题6-13 电子表格计算器(Spreadsheet Calculator, ACM/ICPC World Finals 1992, UVa215)
- Apache HttpClient4.5(三)
- 第十天 PHP的首次讲课
- jedis连接池及redis封装(util)
- [二分+差分]BZOJ 4326——NOIP2015 运输计划