希尔排序python 图解_希尔排序:希尔排序的详细过程图解

在本教程中,您将学习希尔排序的工作原理,即希尔排序的详解过程及图解,此外,您将在C,C ++,Java和Python中找到希尔排序的工作示例。

希尔排序是一种算法,它首先对彼此远离的元素进行排序,并相继减少要排序的元素之间的间隔。它是插入排序的通用版本。

在希尔排序中,对特定时间间隔的元素进行排序。基于所使用的序列,元素之间的间隔逐渐减小。希尔排序的性能取决于给定输入数组使用的序列类型。

使用的一些最佳序列是:希尔的原始序列:N / 2,N / 4,...,1

Knuth的增量:1,4,13,......,(3k - 1)/ 2

塞奇威克的增量:1,8,23,77,281,1073,4193,16577 ...... 4j + 1 + 3·2j + 1。

希巴德的增量:1,3,7,15,31,63,127,255,511 ......

Papernov&Stasevich增量:1,3,5,9,17,33,65,......

普拉特:1,2,3,4,6,9,8,12,18,27,16,24,36,54,81 ....

希尔排序如何工作?假设,我们需要对以下数组进行排序。

我们使用希尔的原始序列(N/2, N/4, ...1作为算法中的间隔。

在第一个循环中,如果那么数组大小,N = 8那么位于间隔的元素将N/2 = 4被比较并交换,如果它们不是有序的话。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值