Java排序算法:希尔排序(Shell排序)
来源:互联网 发布:定额编号软件 编辑:程序博客网 时间:2024/05/27 00:46
希尔排序(Shell排序)
希尔排序(缩小增量法) 属于插入类排序,由Shell提出,希尔排序对直接插入排序进行了简单的改进:它通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项大跨度地移动,当这些数据项排过一趟序之后,希尔排序算法减小数据项的间隔再进行排序,依次进行下去,进行这些排序时的数据项之间的间隔被称为增量,习惯上用字母h来表示这个增量。
常用的h序列由Knuth提出,该序列从1开始,通过如下公式产生:
h = 3 * h +1
反过来程序需要反向计算h序列,应该使用
h=(h-1)/3
代码实现:
public class ShellSortTest { public static int count = 0; public static void main(String[] args) { int[] data = new int[] { 5, 3, 6, 2, 1, 9, 4, 8, 7 }; print(data); shellSort(data); print(data); } public static void shellSort(int[] data) { // 计算出最大的h值 int h = 1; while (h <= data.length / 3) { h = h * 3 + 1; } while (h > 0) { for (int i = h; i < data.length; i += h) { if (data[i] < data[i - h]) { int tmp = data[i]; int j = i - h; while (j >= 0 && data[j] > tmp) { data[j + h] = data[j]; j -= h; } data[j + h] = tmp; print(data); } } // 计算出下一个h值 h = (h - 1) / 3; } } public static void print(int[] data) { for (int i = 0; i < data.length; i++) { System.out.print(data[i] + "\t"); } System.out.println(); } }
http://blog.csdn.net/yaerfeng/article/details/38170009
http://www.2cto.com/kf/201212/178988.html
http://blog.csdn.net/apei830/article/details/6591509
http://www.cnblogs.com/hexiaochun/archive/2012/09/11/2679583.html
0 0
- Java排序算法:希尔排序(Shell排序)
- java排序算法(希尔Shell)
- 希尔(shell)排序算法
- Java排序算法(八):希尔排序(Shell排序)
- Java排序算法(八):希尔排序(Shell排序)
- Java排序算法(八):希尔排序(Shell排序) .
- Java排序算法(八):希尔排序(Shell排序)
- Java排序算法(七):希尔排序(Shell排序)
- [学习笔记]Java排序算法:希尔排序(Shell排序)
- Java排序算法 希尔排序
- Java排序算法:希尔排序
- JAVA排序算法---希尔排序
- JAVA排序算法实现代码-希尔Shell排序
- java希尔排序算法
- java希尔排序算法
- java希尔排序算法
- Java算法-希尔排序
- SHELL排序,希尔排序
- 174. Dungeon Game Leetcode Python
- 3674: 可持久化并查集加强版 可持久化线段树
- Unable to determine simulator device(无法确定设备模拟器)
- canada goose chilliwack parka-678035
- 互联网企业与传统企业思维的本质区别
- Java排序算法:希尔排序(Shell排序)
- MyEclipse优化启动 去除不需要加载的模块 关掉没用的启动项 修改myeclipse.ini
- 让人想死的中文编码有关问题
- jackwills outlet 1jRF428jzt
- 点击一个tomcat里的startup.bat起步的是另一个tomcat
- Lacoste pas cher 0wTD456wqh
- 关于使用lazytag线段树两种查询方式的比较研究
- Ed Hardy Damskie polska 3sPf123aps
- 可以这样去理解group by和聚合函数