public class paixu {
public static void main(String[] args){
int[] array = {11,12,3,4,6,1,22,9,10,44};
int a = array.length;
while (true) {
a =a/ 2; //增量每次减半
for (int i = 0; i < a; i++) {
for (int j = i + a; j < array.length; j =j+ a) {//这个循环里其实就是一个插入排序
int b = j -a;
while (b >= 0 && array[b] > array[a+b]) {
int temp = array[b];
array[b] = array[b+a];
array[b + a] = temp;
b =b - a;
}
}
}
if (a == 1)
//跳出循环结束
break;
}
System.out.println("排序结果:");
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
//排序前:{11,12,3,4,6,1,22,9,10,44};
//排序后:{1,3,4,6,9,10,11,12,22,44};