码迷,mamicode.com
首页 > 编程语言 > 详细

一起talk C栗子吧(第二十八回:C语言实例--希尔排序)

时间:2015-08-02 10:21:22      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:c语言   希尔排序   


各位看官们,大家好,上一回中咱们说的是插入排序的例子,这一回咱们说的例子是:希尔排序。闲话休

提,言归正转。让我们一起talk C栗子吧!


希尔排序是对插入排序的一种改进,希尔排序的原理:先将容器分成若干子容器,然后分别对子容器进行

插入排序,当子容器全部排序完毕后,对全部元素进行一次插入排序。


希尔排序的实现步骤

1.选取一个增量,增量的大小可以自己定义,其大小在1到容器长度之间;

2.以容器头部到增量位置的元素为起点,从起点到容器尾部依次遍历容器;

3.在步骤2中的遍历过程中,选择一个当前位置的元素,再选择相距当前位置增量个位置的元素进行比较;

4.如果步骤3中的两个元素符合排序规则,回到步骤2;

5.如果步骤3中的两个元素不符合排序规则,那么进行一次选择排序;

6.减小增量的值,减小多少,可以自己定义,我在程序中减小了1;

7.反复执行步骤2到步骤6,直到增量值等于为止。


看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。在希尔排序

中使用了插入排序,但是它的效率比插入排序要高,这全是增量的功劳。


各位看官,关于希尔排序的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。



版权声明:本文为博主原创文章,未经博主允许不得转载。

一起talk C栗子吧(第二十八回:C语言实例--希尔排序)

标签:c语言   希尔排序   

原文地址:http://blog.csdn.net/talk_8/article/details/47204313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!