希尔排序

来源:互联网 发布:轩辕剑神足进阶数据 编辑:程序博客网 时间:2024/06/05 05:13
public class Sort {public static void swap(Comparable[] a,int i,int j){Comparable temp=a[i];a[i]=a[j];a[j]=temp;}public static boolean less(Comparable v,Comparable w){return v.compareTo(w)<0;}public static void shellSort(Comparable[] a){int N=a.length;int h=1;while(h<N/3) h=3*h+1;// 递增序列while(h>=1){// 将数组变为h有序for(int i=h;i<N;i++){// 将a[i]插入到 a[i-h],a[i-2*h]...之中for(int j=i;j>=h && less(a[j],a[j-h]);j=j-h){swap(a,j,j-h);}}h=h/3;}}public static void show(Comparable[] a){for(int i=0; i<a.length; i++){System.out.print(a[i]+" ");}System.out.println();}public static void main(String[] args) {Integer[] a={3,6,2,7,9,0,8,1,4,5};show(a);shellSort(a);show(a);}}// output example//3 6 2 7 9 0 8 1 4 5 //0 1 2 3 4 5 6 7 8 9 

0 0
原创粉丝点击