美文网首页
上界&下界&精确查找

上界&下界&精确查找

作者: Gitfan | 来源:发表于2017-03-23 01:05 被阅读0次
//在arr中区间[lef,rig)寻找第一个>=val的元素的位置
//若没有元素>=val,则返回rig
int lowerBound(int *arr,int lef,int rig,int val)
{
    int mid;
    while(lef<rig)
    {
        mid=lef+((rig-lef)>>1);
        if(arr[mid]>=val)
        {
            rig=mid;
        }
        else lef=mid+1;
    }
    return lef;
}
//在arr中区间[lef,rig)寻找第一个>val的元素的位置
//若没有元素>val,则返回rig
int upperBound(int *arr,int lef,int rig,int val)
{
    int mid;
    while(lef<rig)
    {
        mid=lef+((rig-lef)>>1);
        if(arr[mid]<=val)
        {
            lef=mid+1;
        }
        else rig=mid;
    }
    return lef;
}
//在arr中区间[ lef,rig ]寻找等于key的元素
//不存在,则返回-1
int binarySearch(int *arr,int lef,int rig,int key)
{
    int mid;
    while(lef<=rig)
    {
        mid=lef+(rig-lef)/2;
        if(arr[mid]==key) return mid;
        if(arr[mid]>key) rig=mid-1;
        else lef=mid+1;
    }
    return -1;
}

相关文章

  • 上界&下界&精确查找

  • 不乱

    假定我来自上界[愉快][偷笑][偷笑],处于中间的我,连接着上上界、上界、下界, 假设,在下界,师徒可以结为连理或...

  • 渐进符号

    上界大O符号 定义:TODO 下界大Ω(Omiga)符号 定义:TODO 上界小o符号 定义:TODO 下界小ω(...

  • linux c/c++ 面试题目整理(二)

    11、编写一个二分查找函数,下界为low,上界为high 递归法: 非递归法: 注意:二分查找算法前提是已经排好序...

  • Java的二分查找及上下界

    普通的二分查找,利用中间数比较,将上界下标或者下界下标减1或者加1,针对查找某个数是否存在的情况,或者是某个有序数...

  • JAVA泛型总结

    泛型命名 泛型一些约定俗成的命名: 上界通配符 可以使用上界通配符来缩小类型参数的类型范围。 下界通配符 下界通配...

  • 动漫中的“下界”、“上界”

    顶有意思,与现实中的生命探索也有融通的地方。 “下界是关押罪犯的地方,是前人祭炼的牢笼,所缺甚多。 下界被前人以大...

  • 学习笔记2020-06-04

    1、大O符号 大O代表上界符号。 2、下界符号 3、小o符号 4、下界符号2 5、阶相等符号

  • 算法时间复杂度

    cf(N)上界cg(N)下界 大O表示法 包含 小o表示法、θ表示法重合曲线也算上界曲线 小于等于去掉等于的情况 ...

  • 泛型小记-----牢骚宣泄

    < ? extends T> < ? super T> 参数化类型,存储,纯字面意思!什么破上界、下界无语。 关于...

网友评论

      本文标题:上界&下界&精确查找

      本文链接:https://www.haomeiwen.com/subject/tjaanttx.html