希尔排序
来源:互联网 发布:妇幼保健三级网络建设 编辑:程序博客网 时间:2024/06/05 23:40
算法介绍
希尔排序又叫做缩小增量排序,其本质还是插入排序,只不过是将待排序序列按照某种规则分成几个子序列,分别对这几个子序列进行直接插入排序。这个规则的体现就是增量的选取,如果增量为1,就是直接排序。
增量是逐渐减小的。直接插入排序适合于序列基本有序的情况,希尔排序的每趟排序都会使整个序列变得更加有序,等整个序列基本又虚了,再进行一次直接插入排序,这样会使排序效率更高,这就是希尔排序的思想。
时间复杂度
希尔排序的时间复杂度和增量选取有关,希尔排序的增量选取规则有很多,常见的增量选取规则有以下两个。
1.希尔自己提出的选取规则:
[n/2],[n/4],…,2,1
每次将增量除2向下取整,其中n为序列长度,此时时间复杂度为O(n2)
2.帕佩尔诺夫和斯塔舍维奇提出的选取规则:
2的k次方+1,…,65,33,17,9,5,3,1
其中,k为大于等于1的整数,2的k次方小于待排序列长度,增量序列末尾的1是额外添加的。此时时间复杂度为O(n1.5)
空间复杂度
希尔排序的空间复杂度同直接插入排序一样,为O(1)
更多的查看我的博客:https://beatjerome.github.io
阅读全文
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 多标记评价指标(一)——HammingLoss
- kali虚拟机网络配置
- 事务详解
- 区块链技术:天使 OR 魔鬼?
- jquery之事件函数
- 希尔排序
- 虚拟机安装
- tensorflow常用函数
- 利用python编写设计多线程web服务器(计算机网络_自顶向下第六版_第二章1和4的编程作业)
- python学习—Day30—redis
- 混淆总结
- 换行符在Linux和Windows下的区别以及将Linux和windows下的文件的互转的Linux命令:unix2dos, dos2unix
- 继承简单代码实现
- 如何使用 bootstrap