- 思想
又叫缩小增量法,将待排数组按一定间隔分组,将按间隔分出的记录排序,然后重新按一定间隔(间隔比上一次要大,分出的组数比上一次要少)分组,再排序,直到分组数分为1。
- 特点:
时间复杂度:O(N1.3~N1.5)
稳定性:不稳定
希尔排序是对直接排序的优化
- 画图理解
- 程序代码
public static void shell(int[] array,int gap){
int j;
for (int i = gap; i < array.length; i++) {
int tmp = array[i];
for (j = i-gap; j >=0 ; j--) {
if(tmp < array[j]){
array[j+gap] = array[j];
}else{
break;
}
}
array[j+gap] = tmp;
}
}
public static void shellSort(int[] array){
//分为5组。3组。1组
int[] drr = {5,3,1};
for (int i = 0; i < drr.length; i++) {
shell(array,drr[i]);
}
}