希尔排序:可看作直接插入排序的改进版.
基本思想:
将整个待排序序列,按照一定的间距gap分割成若干个子序列.然后再分别进行直接插入排序.最后,对全体元素进行直接插入排序.
时间复杂度: O(n)-->O(n^2)
空间复杂度:O(1)
是否稳定排序:不稳定
void ShellSort(int array[], int n) { for (int gap = n / 2; gap > 0; --gap) { for (int i = gap; i < n; ++i) { int temp = array[i]; int j = i; while (j > 0 && array[j - gap] > temp) { array[j] = array[j - gap]; j -= gap; } array[j] = temp; } } }