当前位置:   article > 正文

排序——希尔(Shell)排序及其与直接插入排序的对比_直接插入排序和希尔排序的区别

直接插入排序和希尔排序的区别

简介:

希尔(Shell)排序法是D.L.Shell在1959年发明的一种排序法,是第⼀个突破O(n2)的排序算法,是简单插⼊排序的改进版,其排序算法类似于简单插入排序,但它可以减少数据搬移的次数。希尔排序⼜叫缩⼩增量排序

排序原则:

将数据区分成特定间隔的几个小分块,以插入排序法排完区块内的数据后再逐渐减少间隔的距离。

排序方法:

希尔排序与直接插入排序非常相似,区别就在于直接插入排序是按照元素位置顺序进行依次判断,希尔排序是将间隔的元素进行插入,用一个实例来看:
例:

		原数组元素:6	9	2	3	4	7	5	1	
  • 1
  1. 组中有8个元素,所以先设n=8,将其分为n/2=4个小区块,但是这几个小区块的元素并不是相连的,而是有间隔的,第一次分隔的四个小区块分别为(6, 4),
    (9, 7),(2, 5),(3, 1)

  2. 将每个区块中的两个元素进行直接插入排序,得到结果的四个新的区块为:
    (4, 6),(7 ,9),(2, 5),(1, 3)
    第一次分块并插入排序后的数组元素为:4 7 2 1 6 9 5 3

  3. 再次缩小区块为(n/2)/2=2块,第二次分隔后的两个小区块为:(4, 2, 6, 5

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/786852
推荐阅读
相关标签
  

闽ICP备14008679号