public class ShellSort { public static void main(String args[]){ int a[] = {10,23,5,2,112,34,22,99,0,45,1}; int N = a.length; int h = 1; while(h<N/3){h = h*3+1;};//1 4 13 ... while(h>=1){ /**将数组变成h有序*/ for(int i=h;i<a.length;i++){ for(int j=i;j>=h && less(a,j-h,j);j-=h){ exchange(a,j,j-h); } } h = h/3; } sort(a); show(a); } private static void sort(int[] a) { } private static void exchange(int[] a, int m, int n) { int temp = a[n]; a[n] = a[m]; a[m] = temp; } private static boolean less(int[] a, int m, int n) { if(a[m] >a[n]){ return true; } return false; } private static void show(int[] a) { System.out.print("排序结果"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+","); } } }
排序-----希尔排序(java)
猜你喜欢
转载自blog.csdn.net/jz_say/article/details/80182754
今日推荐
周排行