实在没想明白 for (int i = gap; i <arr.length ; i++) {
for (int j = i-gap; j >=0; j-=gap) {
}
}分别都是用来循环什么的。如果是用来分组的,怎么实现的
public static void shell(int[]arr){
int temp=0;
//根据前面的逐步分析,使用循环处理
for(int gap=arr.length/2;gap>0; gap/=2){
for (int i = gap; i <arr.length ; i++) {
for (int j = i-gap; j >=0; j-=gap) {
if(arr[j]>arr[j+gap]){
temp=arr[j];
arr[j]=arr[j+gap];
arr[j+gap]=temp;
}
}
}
}
System.out.println(Arrays.toString(arr));
}