import java.util.Arrays;
public class ShellSort {
public static void main(String[] args) {
int a[] = {22,58,33,45,2,7,1,99,100};
System.out.println(Arrays.toString(a));
a=Shell_Sort(a);
System.out.println("排序后:"+Arrays.toString(a));
}
public static int[] Shell_Sort(int[] a) {
for(int h = a.length / 2; h > 0; h /= 2){//希尔增量
for(int i = h; i < a.length; i++){
//将a[i]插入到a[i-h],a[i-2h],a[i-3h]...中
for(int j = i; j >= h && a[j] < a[j - h]; j -= h){
int temp = a[j];
a[j] = a[j-h];
a[j-h] = temp;
}
}
}
return a;
}
}
结果: