排序算法-Sort,更高效率的插入排序—希尔排序
代码
void shell_sort(int a[], int n){int i,j,k, key;k = n / 2;while (k >= 1){for (i = k; i < n; i++) //插入排序时,两个比较元素之间距离k{ //在简单插入排序中两个比较元素距离为1key = a[i];j = i - k;while (key < a[j] && j >= 0){a[j + k] = a[j];j -= k;}a[j + k] = key;}k /= 2;}}
| 时间复杂度 | 空间复杂度 |
稳定性 |
复杂性 |
||
| 平均 |
最坏 |
最好 |
|||
| O(nlogn)~O(n^2) |
O(nlogn)~O(n^2) | O(1) |
不稳定 | 较复杂 |
|
