码迷,mamicode.com
首页 > 其他好文 > 详细

优美的二分模型

时间:2019-11-02 13:42:02      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:while   find   span   二分   font   family   div   mic   nbsp   

在序列中寻找大于等于x的最小值

 

int findl(int x) 
{
    int l = 1, r = n + 1;
    while(l < r)
    {
        int mid = l + r >> 1;
        if(a[mid].pos >= x)
            r = mid;
        else
            l = mid + 1;
    }
  //mid取不到r,而r一开始取n+1有利于查找正确答案
}

 

在序列中寻找小于等于x的最大值

 

int findr(int x)                   
{
    int l = 0, r = n;
    while(l < r)
    {
        int mid = l + r + 1 >> 1;
        if(a[mid].pos<= x)
            l = mid;
        else
            r = mid - 1;
    }
   //原理同上
}

 

优美的二分模型

标签:while   find   span   二分   font   family   div   mic   nbsp   

原文地址:https://www.cnblogs.com/smartljy/p/11781457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!