美文网首页
希尔排序

希尔排序

作者: 一如既往wfqwfq | 来源:发表于2019-10-08 10:02 被阅读0次

1、核心思想

希尔排序:在直接插入排序的基础上进行的优化,直接插入排序在n值小的时候效率比较高,在n很大的时候如果待排序序列基本有序,效率依然很高,时间效率可以提升为O(n)。希尔排序也称之为缩小增量排序。希尔排序就是用了直接插入排序的优点进行改进。刚开始排序n值小,等n值大了后,序列又已经基本有序了。

2、例子

初始数组:[18, 24, 12, 15 , 1 , 27, 17 ,19]

第一趟

增量 = 数组长度/2 = 4。
按步长为4对数组划分,得到[18,1]、[24,27]、[12,17]、[15,19]
将各组按直接插入排序方法排序得到
[1,24,12,15,18,27,17,19]

第二趟

增量 = 增量/2 = 2
按步长为2对数组划分[1,12,18,17]、[24,15,27,19]
将各组按直接插入排序方法排序得到
[1,15,12,19,17,24,18,27]

第三趟

增量 = 增量/2 = 1
因为步长已经为1了,执行直接插入排序,现在序列已经基本有序,所以效率高了很多。
[1,12,15,17,18,19,24,27]


image.png

相关文章

  • 排序算法(二)之希尔排序

    图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也...

  • 07-希尔排序(Shell Sort)

    希尔排序(Shell Sort) 希尔排序是唐纳德·希尔(Donald Shell)在0959年提出的。希尔排序与...

  • 排序-希尔排序(分治)

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • swift经典算法-希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • 排序算法④——希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • 排序算法-希尔排序(Java实现)

    希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是...

  • 说说算法那些事-希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,希尔排序法又称...

  • 希尔排序学习

    希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基...

  • 排序算法(四) 希尔排序(插入排序的进化)

    参考Java排序算法(四):希尔排序常见排序算法 - 希尔排序 (Shell Sort) 希尔排序算法是按其设计者...

  • 编程马拉松 Day04 希尔排序、归并排序、快速排序

    本文将介绍三个高级排序算法 希尔排序 归并排序 快速排序 希尔排序 希尔排序(Shell's Sort)的名称源于...

网友评论

      本文标题:希尔排序

      本文链接:https://www.haomeiwen.com/subject/yclructx.html