下载此文档

希尔排序1.ppt


文档分类:外语学习 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
希尔排序
汇报人:王曦
组员:马志豪、孙天洋、王明远、刘讯。
基本思想
方法与过程
C++代码实现
练****br/>目录
希尔排序
希尔排序
基本思想:
希尔排序属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序。先取一个小于n的整数h1作为第一个增量,把文件的全部记录分成h1个组。所有距离为h1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量h2<h1重复上述的分组和排序,直至所取的增量ht=1(ht<ht-l<…<h2<h1),即所有记录放在同一组中进行直接插入排序为止。
基本思想
方法与过程
子序列分割方法:
,分别进行
插入排序。在排序的过程中逐次减小这个增量,
最后当h=1时,进行一次插入排序,排序完成。
=n/2^k(k=1,2,…/[㏒ 2^n]),其中n为待排序列的长度。
希尔排序
方法与过程
希尔排序
<n,把所有序号相隔h1的数组元素放一组,组内进行直接插入排序。
排序过程:
07
19
24
13
31
08
82
18
44
63
05
29
h=6
方法和过程
希尔排序
第一子序列:
第三子序列:
第二子序列:
第六子序列:
第四子序列:
第五子序列:
第一次排序结果:
07
82
18
19
24
44
13
63
05
31
08
29
07 18 24 13 05 08 82 19 44 63 31 29
方法与过程
07
18
24
13
05
08
82
19
44
63
31
29
<h1,重复上述分组和排序操作;直至ht=1,即所有记录放进一个组中排序为止。
h=3
第一子序列:07 13 63 82
第二子序列:05 18 19 31
第三子序列:08 24 29 44
第二次排序结果:
07 05 08 13 18 24 63 19 29 82 31 44
希尔排序
07
05
24
13
31
08
82
18
44
63
05
29
h=1
第三次排序:
第三次排序结果:
05 07 08 13 18 19 24 29 31 44 63 82
希尔排序
方法与过程
最终排序结果:
05 07 08 13 18 19 24 29 31 44 63 82
希尔排序
方法与过程
增量序列取法:
没有除1以外的公因子,最后一个增量值必须为1。
T(n) = O(n )
希尔排序的时间是所取“增量”序列的函数。
希尔排序
时间分析

希尔排序1 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人w447750
  • 文件大小5.50 MB
  • 时间2018-06-25