package sort;
import java.util.Arrays;
public class ShellSort {
public static void main(String[] args) {
int[] a = {5, 4, 3, 2, 1};
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sort(int[] a) {
int h = 1;
while(h <= a.length / 3) {
h = h * 3 + 1;
}
while(h > 0) {
for(int i = h; i < a.length; i += h) {
if(a[i] < a[i - h]) {
int tmp = a[i];
int j = i - h;
while(j >= 0 && a[j] > tmp) {
a[j + h] = a[j];
j -= h;
}
a[j + h] = tmp;
}
}
h = (h - 1) / 3;
}
}
}
ShellSort希尔排序
最新推荐文章于 2021-05-05 11:24:28 发布