希尔排序.ppt_第1页
希尔排序.ppt_第2页
希尔排序.ppt_第3页
希尔排序.ppt_第4页
希尔排序.ppt_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

希尔排序 2 希尔排序是对直接插入排序算法的改进 其主要思想是 先将整个排序数列分割成为若干个子序列 在子序列分别进行直接插入排序 待整个数列基本有序时再对全部进行一次直接插入排序 以此来形成新的有序数列 一般分割方法是两个元素相距d n 2 n 4 n 8 以此类推 3 希尔 shell 排序 又称缩小增量排序 1 基本思想 把整个待排序的数据元素分成若干个小组 对同一小组内的数据元素用直接插入法排序 小组的个数逐次缩小 当完成了所有数据元素都在一个组内的排序后排序过程结束 2 技巧 小组的构成不是简单地 逐段分割 而是将相隔某个增量dk的记录组成一个小组 让增量dk逐趟缩短 例如依次取5 3 1 直到dk 1为止 3 优点 让关键字值小的元素能很快前移 且序列若基本有序时 再用直接插入排序处理 时间效率会高很多 4 38 例1 关键字序列T 49 38 65 97 76 13 27 49 55 04 请写出希尔排序的具体实现过程 初态 第1趟 dk 5 第2趟 dk 3 第3趟 dk 1 49 13 13 49 38 27 65 49 97 55 76 04 27 38 65 49 97 55 13 55 76 04 55 13 27 04 27 04 49 49 49 49 76 38 76 65 65 97 97 13 27 04 49 76 97 算法分析 开始时dk的值较大 子序列中的对象较少 排序速度较快 随着排序进展 dk值逐渐变小 子序列中对象个数逐渐变多 由于前面工作的基础 大多数对象已基本有序 所以排序速度仍然很快 可以看出 49 排序后出现在49的前面 故希尔算法是不稳定的 r i 5 原始序列 256 301 751 129 937 863 742 694 076 438 希尔排序 256 301 751 129 937 863 742 694 076 438 256 301 751 129 937 863 742 694 076 438 256 301 694 129 937 863 742 751 076 438 256 301 694 076 937 863 742 751 129 438 256 301 694 076 438 863 742 751 129 937 第1趟dk 5第2趟dk 3第3趟dk 1 256 301 694 076 438 863 742 751 129 937 256 301 694 076 438 863 742 751 129 937 076 301 694 256 438 863 742 751 129 937 076 301 694 256 438 863 742 751 129 937 076 301 694 256 438 863 742 751 129 937 076 301 129 256 438 694 742 751 863 937 076 301 129 256 438 694 742 751 863 937 076 301 129 256 438 694 742 751 863 937 076 129 256 301 438 694 742 751 863 937 例2 以关键字序列 256 301 751 129 937 863 742 694 076 438 为例 写出执行希尔排序 取dk 5 3 1 算法的各趟排序结束时 关键字序列的状态 希尔排序的算法templatevoiddataList ShellSort Elementtemp intgap CurrentSize 2 gap是子序列间隔while gap 0 循环 直到gap为零for inti gap i gap j gap if temp Vector j gap Vector j Vector j gap elsebreak Vector j temp gap int gap 2 Gap的取法有多种 最初shell提出取gap n 2 gap gap 2 直到gap 1 knuth提出取gap gap 3 1 还有人提出都取奇数为好 也有人提出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论