public static void shell(int[] array){
int h=array.length/2;
while (h >= 1){
for (int i=h;i<array.length;i++){//分组
for (int j=i;j>=h;j-=h){//每组进行插入排序
if (array[j-h]>array[j]){
int temp = array[j-h];
array[j-h] = array[j];
array[j] = temp;
}else{
break;
}
}
}
h=h/2;
}
}
先进性分组, 组内进行插入排序