希尔排序
来源:互联网 发布:linux 安装nginx 编辑:程序博客网 时间:2024/06/11 09:00
分析:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量
代码:
def shell(arr): l = len(arr) h = 1 while h < l: h = 3 * h + 1 while h >= 1: for i in range(h, l): j = i while j >= h and arr[j] < arr[j - h]: arr[j], arr[j - h] = arr[j-h], arr[j] j -= h h=h // 3 return arrprint shell([1, 2, 3, 4, 5, 6, 7, 90, 21, 23, 45])
平均时间复杂度:希尔排序的时间复杂度和其增量序列有关系,这涉及到数学上尚未解决的难题;不过在某些序列中复杂度可以为O(n1.3);
空间复杂度:O(1)
稳定性:不稳定
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 【资源分享】Axure.RP.v8.0.0 界面原型设计软件
- Android 屏幕适配和版本适配
- 跨浏览器的事件处理程序
- Toolbar使用小结
- 哈夫曼编码
- 希尔排序
- C动态字符串,动态开辟内存空间相关 malloc realloc 用法
- HttpURLConnection用法详解
- [jQuery知识]jQuery之知识十一-动画高级
- 第21篇 ninja的安装(二)周日
- Android 读取doc文件
- C动态字符串,动态开辟内存空间相关 malloc realloc 用法
- 在windows运行python
- 高逼格sql