各位看官们,大家好,上一回中咱们说的是插入排序的例子,这一回咱们说的例子是:希尔排序。闲话休
提,言归正转。让我们一起talk C栗子吧!
希尔排序是对插入排序的一种改进,希尔排序的原理:先将容器分成若干子容器,然后分别对子容器进行
插入排序,当子容器全部排序完毕后,对全部元素进行一次插入排序。
希尔排序的实现步骤:
1.选取一个增量,增量的大小可以自己定义,其大小在1到容器长度之间;
2.以容器头部到增量位置的元素为起点,从起点到容器尾部依次遍历容器;
3.在步骤2中的遍历过程中,选择一个当前位置的元素,再选择相距当前位置增量个位置的元素进行比较;
4.如果步骤3中的两个元素符合排序规则,回到步骤2;
5.如果步骤3中的两个元素不符合排序规则,那么进行一次选择排序;
6.减小增量的值,减小多少,可以自己定义,我在程序中减小了1;
7.反复执行步骤2到步骤6,直到增量值等于为止。
看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。在希尔排序
中使用了插入排序,但是它的效率比插入排序要高,这全是增量的功劳。
各位看官,关于希尔排序的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-12-16 22:06:07