博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell排序
阅读量:6568 次
发布时间:2019-06-24

本文共 1543 字,大约阅读时间需要 5 分钟。

如何用一句话清晰明了的介绍shell排序呢?

  从第一个元素开始,对间距为h的元素进行排序,排好后再从第二个元素与间隔h的元素开始往后排......直到排到第h个元素,这样就能保证所有元素都按间隔h排了一遍,保证元素与间隔h的元素之间是有序的。然后按h = (h-1)/3不断缩小h再排序一遍,缩小一次排一遍,一点点缩小间隔到保证间隔为1的元素之间都是有序的。

  这样较直接插入排序而言,减少了数组元素的移动次数。

======================================================

package sort_1;public class ShellSort {        public static void shellSort(DataWrap[] data)    {        int arrayLength = data.length;        int h = 1;        while(h
0) { System.out.println("===的h值:"+h+"==="); for(int i = h;i
=0&&data[j].compareTo(temp)>0;j-=h) { data[j+h] = data[j]; } data[j+h]=temp; } System.out.println(java.util.Arrays.toString(data)); } h = (h-1)/3; } } public static void main(String[] args) { DataWrap[] data = new DataWrap[]{ new DataWrap(2,""), new DataWrap(5,""), new DataWrap(1,""), new DataWrap(3,""), new DataWrap(6,""), new DataWrap(9,""), new DataWrap(8,""), new DataWrap(4,""), new DataWrap(7,""), new DataWrap(0,""), new DataWrap(11,""), new DataWrap(10,""), }; ShellSort.shellSort(data);// System.out.println(java.util.Arrays.toString(data)); }}

 

 

转载于:https://www.cnblogs.com/xu-thinking/p/3330015.html

你可能感兴趣的文章
SVN安装部署方案(一)
查看>>
我的友情链接
查看>>
CentOS7.4下建立DNS主从服务器(二)
查看>>
浅析 Linux 初始化 init 系统
查看>>
RMAN的"rman: can't open target"错误
查看>>
我的友情链接
查看>>
hadoop hive 安装
查看>>
Linux任务高度进程crond的使用
查看>>
20130710--代码技巧
查看>>
APACHE工作原理详解
查看>>
HDMI都不灵,为什么电脑连电视效果差
查看>>
北大校长王恩哥送给毕业生的十句话
查看>>
Java并发- 读写锁中的性能之王:StampedLock
查看>>
我的友情链接
查看>>
即时通讯有标准 IM的四种即时通讯协议简介
查看>>
2.7、Android Studio使用翻译编辑器本地化UI
查看>>
雷林鹏分享:PHP 魔术常量
查看>>
[BZOJ2216][Poi2011]Lightning Conductor[决策单调性优化]
查看>>
安装laravel框架
查看>>
java 循环时间调用 程序(转)
查看>>