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

二分查找

时间:2014-08-14 19:33:59      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   div   log   size   ad   

标准的二分查找:binary_search

int bsearch(int a[],int l,int r,int x)
{     
    int m;
    while(l<=r){    
        m = (l+r)/2;  // m = l+(r-l)>>2;
        if(a[m]==x)
            return m;
        else if(a[m]>x) 
            r = m-1;
        else
            l = m+1;
    }
    return -1; //查找不成功
}

二分查找求下界(第1次出现的位置) lower_bound

int bsearchLower(int a[],int l,int r,int x)
{
    int m;
    while(l<r){
        m = (l+r)/2;
        if(x<=a[m])  
            r = m;
        else  
            l = m+1;
    }
    if(a[l]==x) 
        return l;
    else 
        return -1;    //查找不成功
}

二分查找求上界(最后一次出现的位置)upper_bound

int bsearchUpper(int a[],int l,int r,int x)
{
    int m;
    while(l<r){
        m = (l+r+1)/2;     //加了“1”
        if(x<a[m])  
            r = m-1;
        else   
            l = m;
    }
    if(a[r]==x) 
        return r;
    else 
        return -1;//查找不成功
}

二分查找,布布扣,bubuko.com

二分查找

标签:style   blog   color   ar   div   log   size   ad   

原文地址:http://www.cnblogs.com/scofield0li/p/3912932.html

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