折半插入排序

来源:互联网 发布:mac驱动精灵怎么安装 编辑:程序博客网 时间:2024/06/07 07:22
/*折半插入排序折半插入排序,只是减少了查找关键词的位置的查找过程减少了比较次数,但后移这一部分没有改变和直接插入排序一样*/void BInsertSort(SqList &L){    for(int i = 2 ; i<=L.lenght ; i ++)    {        L.r[0] = L.r[i] ;        int low , high ;        low = 1 ; high = i-1 ;        while(low<=high)//二分查找需要插入的位置        {            int mid = (low +high) / 2 ;            if(L.r[0]<L.r[mid])                high = mid - 1 ;            else                low = mid + 1 ;        }       for(int j = i-1;j<=high + 1 ; j--) //将记录后移            L.r[j+1] = L.r[j] ;       L.r[high+1] = L.r[0] ;                            }}



原创粉丝点击