插入排序+二分查找

来源:互联网 发布:淘宝极有假货有假货吗 编辑:程序博客网 时间:2024/05/16 10:44
void insertionSortBinary(TYPE A[], int n){    int i, j, l, r, mid; TYPE key;    for(i = 1; i<n; ++i)    {        key = A[i];        l = 0; r = i-1;        while(l <= r)        {            mid = (l+r)/2;            if(key<A[mid]) r = mid-1;            else if(key>A[mid]) l = mid+1;            else  {l = mid;break;}        }        for(j = i-1; j>=l; --j) A[j+1] = A[j];        A[l] = key;    }}
虽然对数组不,由于数组的移动不会降低复杂度,但是对链表,可以使复杂度O(nlogn)。http://en.wikipedia.org/wiki/Factorial
原创粉丝点击