希尔排序:把序列按下标的一定增量分组,对每组使用直接插入排序算法排序; 随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个序列被分成一组,算法便终止
public void shell(int[] arr){
int n = arr.length / 2;
while (n != 0){
for (int j = n;j < arr.length; j++){
int temp = arr[j];
int k = j - n;
for (;k >= 0; k = k - n){
if (temp < arr[k]){
arr[k + n] = arr[k];
}else{
break;
}
}
arr[k + n] = temp;
}
n = n / 2;
}
}