分析
💫 需要注意:希尔排序的增量规则
增长量初始:h< 数组/2
int h=1;
while(h<len){
h=2h+1; //然后以此来确定增长量的长度为多少
}
代码
public static void shellSort(int[] arr){
//不断地缩小增量
for (int interval =arr.length/2;interval >0;interval=interval/2){
//增量为1的插入排序
for (int i=interval;i<arr.length;i++){
int target=arr[i];
int j=i-interval;
while (j>-1&&target<arr[j]){
arr[j+interval]=arr[j];
j-=interval;
}
arr[j+interval]=target;
}
}
}