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