package sun;
public class Sort {
/**
*
* @param 待排序数组
*
*/
public static void shell(int[] a, int l, int r) {
int h;
for (h = l; h <= (r - l) / 9; h = 3 * h + 1);
for (; h > 0; h /= 3) {
for (int i = l + h; i <= r; i++) {
int j = i;
int v = a[i];
while (j >= l + h && v < a[j - h]) {
a[j] = a[j - h];
j -= h;
}
a[j] = v;
}
}
}
public static void main(String[] args) {
int[] arr = { 49, 38, 65, 97, 76, 13, 27, 49 };
shell(arr, 0, arr.length - 1);
for (int a : arr)
System.out.println(a);
}
}
希尔排序
最新推荐文章于 2023-11-28 16:53:17 发布