希尔排序
<br />希尔排序 有Donald Shell发明,每次,都使得部分数有序,最后整个数组有差不多有序的时候使用增量为1的插入排序(用了插入排序在有序情况下的时间复杂度是O(n)这个特点),至于希尔排序的分析真的很复杂,一般说它的时间复杂度是O(n(logn)^2)。其实就是对相隔为h的元素使用插入排序,最后h减到1,最后一次插入排序得到一个有序数组。<br />void shell_sort(int *a, int n){ int i, j, h; for(h=n/2; h>0;
复制链接