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

C++ 代码模板:整数二分,第1张

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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5658316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存