其他分享
首页 > 其他分享> > 终极二分万能模板

终极二分万能模板

作者:互联网

终极二分万能模板

① 整数域二分

情况一:

适用于 \(.....V000000\) \(( . 表示false, 0 表示true)\)

image

int bsearch_1(int l, int r)
{
    while (l < r)
    {
        int mid = l + r >> 1;
        if (check(mid)) r = mid;
        else l = mid + 1;
    }
    return l;
}

情况二:

适用于 \(000000V......\) \(( . 表示false, 0 表示true)\)

image

while (l < r)
    {
        int mid = l + r + 1 >> 1;
        if (check(mid)) l = mid;
        else r = mid - 1;
    }
    return l;

② 实数域二分

double l = -100, r = 100;
    while (r - l > 1e-8)//精度
    {
        double mid = (l + r) / 2;
        if (check(mid)) r = mid;
        else l = mid;
    }

标签:二分,int,mid,else,while,终极,check,模板
来源: https://www.cnblogs.com/xiaofeilong7816/p/15077285.html