C/C++教程

C++ 代码模板:整数二分

本文主要是介绍C++ 代码模板:整数二分,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// 区间 [l, r] 被划分成 [l, mid] 和 [mid + 1, r] 时使用
int bisearch_1(int l int r)
{
    while ( l < r )
    {
        int mid = l + r >> 1;
        if ( check(mid) ) r = mid;    // check()判断mid是否满足性质
        else l = mid + 1;
    }
    return l;
}

// 区间 [l, r] 被划分成 [l, mid - 1] 和 [mid, r] 时使用
int bisearch_2(int l, int r)
{
    while ( l < r )
    {
        int mid = l + r + 1 >> 1;
        if ( check(mid) ) l = mid;
        else r = mid - 1;
    }
    return l;
}

这篇关于C++ 代码模板:整数二分的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!