贴一发STL源码

int my_lower_bound(int size, long long key)
{
    int first = 0, middle;
    int half, len;
    len = size;
    while(len > 0) {
        half = len >> 1;
        middle = first + half;
        if(calc(middle) < key) {
            first = middle + 1;
            len = len-half-1;       //在右边子序列中查找
        }
        else
            len = half;            //在左边子序列(包含middle)中查找
    }
    return first;
}

posted @ 2016-08-02 14:27  zxMrlc  阅读(131)  评论(0编辑  收藏  举报