标签:
1 public void sort(int[] arr) { 2 // i表示希尔排序中的第n/2+1个元素(或者n/4+1) 3 // j表示希尔排序中从0到n/2的元素(n/4) 4 // r表示希尔排序中n/2+1或者n/4+1的值 5 int i, j, r, tmp; 6 // 划组排序 7 for(r = arr.length / 2; r >= 1; r = r / 2) { 8 for(i = r; i < arr.length; i++) { 9 tmp = arr[i]; 10 j = i - r; 11 // 一轮排序 12 while(j >= 0 && tmp < arr[j]) { 13 arr[j+r] = arr[j]; 14 j -= r; 15 } 16 arr[j+r] = tmp; 17 } 18 System.out.println(i + ":" + Arrays.toString(arr)); 19 } 20 }
标签:
原文地址:http://www.cnblogs.com/LeslieXia/p/5814571.html