希尔排序(shellSort)
先上代码
public String shellSort(int[] arr) {
int h = 1;
while(h<=arr.length/3){
h = 3*h+1;
}
for(int gap=h;gap>0;gap=(gap-1)/3){
for(int i=gap ;i<arr.length;i++){
for(int j=i;j>gap-1;j-=gap){
if(arr[j]<arr[j-1]){
swap(arr, j, j-1);
}
}
}
}
return Arrays.toString(arr);
}
void swap(int arr[],int i, int j){
int temp = arr[i];
arr[i]= arr[j];
arr[j] = temp;
}