时间复杂性优于以O (N 1.5)直接对齐的O (N 2)。增量序列的最后一个增量值必须为1。此外,由于记录跳跃移动,所以希尔对齐不是一种稳定的对齐方法。
希尔排序原理:
希尔排序是插入排序的一种,又称为‘缩小增量排序’,是插入排序算法的一种更高效的改进版本。
1. 选定一个增长量h,按照增长量h对数据进行分组。
2. 对分好的每一组数据完成插入排序。
3. 减少增长量,最小减为1,重复第二步操作。
算法思想:
将整个待排序列分割成若干个子序列(由相隔增量个元素组成),分别进行直接插入排序,然后依次缩小增量再进行排序,待整个序列中的元素基本有序时,再对全体元素进行一次直接插入排序。
希尔排序的实现应该由三个循环完成
(1)第一次循环,将增量d依次折半,直到增量d=1
(2)第二三层循环,也就是直接插入排序所需要的两次循环。
希尔排序的优化点
1).在大多数元素已经有序的情况下,插入排序的工作量较小
这个结论很明显,如果一个数组大部分元素都有序,那么数组中的元素自然不需要频繁地进行比较和交换。
2).在元素数量较少的情况下,插入排序的工作量较小
这个结论更加显而易见,插入排序的工作量和n的平方成正比,如果n比较小,那么排序的工作量自然要小得多。
举报/反馈1.《【希尔】希尔排序时间复杂度》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【希尔】希尔排序时间复杂度》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/2896859.html