希尔排序算法是插入排序的一种,又叫缩小增量排序,在插入排序基础上进行了改进,先进行宏观上的排序,然后再进行插入排序。
public static void ShellSort (int [] arr){
for(int gap = arr.length/2;gap >0;gap /=2){
for(int i = gap;i<arr.length;i++){
int j = i;
int temp = arr[j];
if(arr[j] < arr[j-gap]){
while(j-gap >= 0 && temp < arr[j-gap] ){
arr[j] = arr[j-gap];
j-=gap;
}
arr[j] = temp;
}
}
}
}