排序算法(七.希尔排序-改进的插入排序2)

本文探讨了希尔排序中的增量序列,重点介绍了Knuth序列。文章指出,Knuth序列(1, 4, 13, ...)据称比Shell序列更有效率,并给出了基于Knuth序列的希尔排序实现,但其实际效率有待测试。" 130340897,4985189,Java互联网高级教程:从基础到并发编程,"['Java基础', '并发控制', '数据结构', 'JVM深入', '面试攻略']
摘要由CSDN通过智能技术生成

排序算法(七.希尔排序-改进的插入排序2)

上篇博客介绍了希尔排序的算法思想及具体实现,本文主要想继续研究下希尔排序中采用的增量序列 (gap序列),上篇博客的实现都是基于Shell 增量序列 即 n/2 实现的。

增量序列介绍

Shell 增量序列
Hibbard 增量序列
Knuth 增量序列
Gonnet 增量序列
Sedgewick 增量序列
此处仅做了简单罗列,有兴趣的同学可以自行查阅资料了解详细介绍哈。

knuth增量序列

本文主要来简单介绍下knuth序列,效率据说会高于shell序列
h = 1
h = 3h + 1
大概序列就是:1, 4, 13 …

基于knuth增量序列的实现

/**
 * <p>@filename ShellSort</p>
 * <p>
 * <p>@description 基于knuth序列的希尔排序Java实现</p>
 *
 * @author Java猿人一枚
 * @version 1.0
 * @since 2019/4/2 22:30
 **/
public class ShellSort1 {
    public static void main(String[] args) {
        int[] nums = new int[]{100,34,52,6,8,78,95};
        System.out.println("待排序数组:" + Arrays.toString(nums));
        int[] result = shellSortKnuth(nums);
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值