希尔排序算法
2016-07-20 15:37
337 查看
希尔排序:把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。我们来通过演示图,更深入的理解一下这个过程。
package MyPackage; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue; public class Tem { public static void main(String[] args) { int[] a=new int[]{1,6,9,2,4,5,7,9,0,2,1,64,7,2345,63,3,5,676,233,6552,345,34}; shellSort(a); System.out.println(Arrays.toString(a)); } public static void shellSort(int[] a){ for(int h=a.length/2;h>0;h/=2){ for(int i=h;i<a.length;i++){ int tem =a[i]; int j; for(j=i;j>=h&&(tem<a[j-h]);j-=h){ a[j]=a[j-h]; } a[j]=tem; } } } }
相关文章推荐
- 多行文本字段运行时展示成单行文本
- java_opts 参数
- 线程范围内共享变量使用ThreadLocal类详细方法
- 第一天-HTML5新增部分标签
- 进制之间的转换 Java
- 面试题46:求1+2+ …… +n
- 李洪强iOS开发之使用CycleScrollView实现轮播图
- rem
- mongoDB嵌套查询
- maven ArtifactTransferException: Failure to transfer
- 334. Increasing Triplet Subsequence
- TCP(一 协议)
- 富文本的处理 时间控件的处理
- mysql 添加索引
- 关于md5的加密和解密的一些好的文章以及软件下载地址
- C++设计语言三大难点
- 关于mysql中无法显示中文的完美解决方案
- 图论--连通二分图计数
- 详细介绍windows下使用python pylot进行网站压力测试
- 郑重声明