排序算法之希尔排序
基本思想:
在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。
然后逐渐将增量减小,并重复上述过程。直至增量为1,此时数据序列基本有序,最后进行插入排序。
过程:

java代码:
public int[] shellSort(int[] array) {
int incre = array.length;
while (true) {
incre = incre / 2;
for (int k = 0; k < incre; k++) { //根据增量分为若干子序列
for (int i = k + incre; i < array.length; i += incre) {
for (int j = i; j > k; j -= incre) {
if (array[j] < array[j - incre]) {
array[j - incre] = array[j] ^ array[j - incre];
array[j] = array[j] ^ array[j - incre];
array[j - incre] = array[j] ^ array[j - incre];
} else {
break;
}
}
}
}
if (incre == 1) {
return array;
}
}
}
浙公网安备 33010602011771号