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){ /** Turn the array into h-ordered */ 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("Sort result"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+","); } } }
Sort ----- Hill Sort (java)
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325618717&siteId=291194637
Recommended
Ranking