public static void main(String[] args) {
int[] number = {5, 8, 1, 45, 61, 8, 1, 9, 1, 2, 0};
int gap=number.length/2;
while (1 < gap) {
//每次循环 从该组的第一个数据到当前位置进行一次插入排序 步长为gap
// i%gap i gap
for (int i=gap;i<number.length;i++) {
int j=0;
//一次插入排序,步长为gap
int temp=number[i];
for (j=i-gap;j>=0&&temp<number[j];j=j-gap) {
number[j+gap]=number[j];
}
number[j+gap]=temp;
//一次插入排序结束
}
//压缩量减小
gap=gap/2;
}
for (int a : number) {
System.out.println(a);
}
}