文档章节

Shell 排序

兔之
 兔之
发布于 2016/04/11 10:49
字数 169
阅读 19
收藏 2

Shell 排序把二分的想法加了进去,是基于插入排序的改进。先粗一点分组,再进行插入排序;再细一点分组,再插入排序。

public class ShellSort 
{
    public static void insertionSort(int[] data, int start, int step)
    {
        for (int i = start; i < data.length; i += step)
        {
            for (int j = i; j > 0; j -= step)
            {
                if (data[j] < data[j-1])
                {
                    int temp = data[j];
                    data[j] = data[j-1];
                    data[j-1] = temp;
                }
                else break;
            }
        }
    }

    public static void sort(int[] data)
    {
        int len= data.length;
        for (int step = len / 2; step > 0; step /= 2)
        {
            for (int start = 0; start < step; start++)
            {
                //调用插入排序
                insertionSort(data, start, step);
            }
        }
    }

    public static void main(String[] argv)
    {
        int[] data = {5, 1, 2, 6, 8, 10, 3, 6, 12, 7};
        sort(data);

        for(int i: data)
            System.out.println(i);
    }
}

参考

https://class.coursera.org/algs4partI-010/lecture/27

© 著作权归作者所有

共有 人打赏支持
兔之
粉丝 66
博文 247
码字总数 95896
作品 7
深圳
程序员

暂无文章

线性一致性和 Raft

作者:沈泰宁 在讨论分布式系统时,共识算法(Consensus algorithm)和一致性(Consistency)通常是讨论热点,两者的联系很微妙,很容易搞混。一些常见的误解:使用了 Raft [0] 或者 paxos ...

TiDB
17分钟前
0
0
兄弟连区块链教程以太坊源码分析core-state-process源码分析

## StateTransition状态转换模型 /* The State Transitioning Model 状态转换模型 A state transition is a change made when a transaction is applied to the cu......

兄弟连区块链入门教程
19分钟前
0
0
linear-gradient渐变中的参数

在看张鑫旭的博客 遇到渐变数值后面带参数不太理解 @supports (-webkit-mask: none) or (mask: none) { .box { border: none; background: linear-gradient(to bottom, #34538...

红羊在厦门
20分钟前
0
0
Python yagmail模块自动发邮件

Python发邮件yagmail模块 import yagmail#连接服务器yag=yagmail.SMTP('xx@163.com','yy','smtp.163.com')#邮箱正文contents=["test","email send"]#发送邮件#yag.send('...

小白兔_球球
21分钟前
1
0
pada mysql

CREATE SCHEMA `exchange` DEFAULT CHARACTER SET utf8mb4 ;

qwfys
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部