您的位置:首页 > 其它

希尔排序算法

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;
}
}
}

}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: