首页 > 编程语言 > 详细

排序-希尔排序

时间:2019-12-28 14:09:22      阅读:100      评论:0      收藏:0      [点我收藏+]

希尔排序

基本知识

基本思想:

  • 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序
  • 待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序

操作方法:

  • 选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1;
  • 按增量序列个数k,对序列进行k 趟排序;
  • 每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序
  • 仅增量因子为1 时,整个序列作为一个表来处理,表长度即为整个序列的长度

希尔排序时效分析很难,关键码的比较次数与记录移动次数依赖于增量因子序列d的选取,特定情况下可以准确估算出关键码的比较次数和记录的移动次数。目前还没有人给出选取最好的增量因子序列的方法。增量因子序列可以有各种取法,有取奇数的,也有取质数的,但需要注意:增量因子中除1 外没有公因子,且最后一个增量因子必须为1。希尔排序方法是一个不稳定的排序方法。

技术分享图片

排序-希尔排序

原文:https://www.cnblogs.com/yanghanwen/p/12111469.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!