二分(上界,下界)模板

10人阅读 评论(0) 收藏 举报
分类:

二分查找:(Binary Search) 只适用有序序列

二分查找 (迭代实现)

int bsearch(int *A,int l,int r,int key)
{
        
        int m;
        while(l<r)
        {
                m = l+(r-l)/2;
                if(key == A[m]) return m;
                else if (key < A[m]) r = m;
                else l = m+1;
        }
        return -1;
}

下界:(lower_bound)当key存在return第一次出现的位置,如果不存在return 一个下标 i(把key插入i位置,序列仍有序).

上界:(up_bound)当key存在return最后一次出现的位置的下一个位置,如果不存在return 一个下标 i(把key插入i位置,序列仍有序).

找下界:

int lower_bound(int *A,int l,int r,int key)
{
        
        int m;
        while(l<r)
        {
                m = l+(r-l)/2;
                if(key <= A[m]) r = m;
                else l = m+1;
        }
        return l;
}
找上界:
int up_bound(int *A,int l,int r,int key)
{
        
        int m;
        while(l<r)
        {
                m = l+(r-l)/2;
                if(key >= A[m]) l = m+1;
                else r = m;
        }
        return l;
}

查看评论

上界,下界,二分查找

直接上代码了 有注释 //Author: laserss //Time : 2012/11/14 //email : dellaser@163.com #include #...
  • dellaserss
  • dellaserss
  • 2012-11-14 20:45:43
  • 1849

二分查找求上界和下界

二分查找求上界和下界假设序列有序,其区间为[left,right)[left, right),设middlemiddle为区间中间值,现在需要获得首个出现元素vv的位置,如果不存在,返回一个位置,在此...
  • q547550831
  • q547550831
  • 2016-05-30 12:21:13
  • 1881

二分法(查找、求上界、求下界)

【解析】 二分查找的话相信大家都有一定的了解过,其实就是不断的缩小范围,不断的缩小范围话不多说上代码。int erfen(int k[],int n,int k) { int left=0,...
  • ZCMUCZX
  • ZCMUCZX
  • 2016-12-27 07:36:23
  • 683

二分查找上界和下界

详细见详细见《算法竞赛入门》P229 这里用的是左闭右开空间[left , right) upper_bound返回的是target应该插入的位置或者最后一次出现位置的下一个位置 这里的实现就跟STL...
  • gao1440156051
  • gao1440156051
  • 2016-01-26 13:49:04
  • 896

二分查找求上下界的两种不同算法

在学习LIS的O(nlogn)的算法时看到了二分法求下界的概念,所以回白书学习了一下在有序表中查找元素时经常用到二分法,普通的二分查找很简单,就是不断改变区间。二分查找只适用于有序数列,时间复杂度为O...
  • SeasonJoe
  • SeasonJoe
  • 2015-11-22 10:40:57
  • 1268

二分查找(上界,下界)

二分查找(上界, 下界)
  • u013351484
  • u013351484
  • 2014-08-17 16:26:03
  • 672

【java】二分查找 求下界 求上界

二分查找要求数组必须是有序数组,输入数组长度n以及查找元素值key,然后输入n个元素,输出key所在的位置,不存在则输出-1. 样例输入: 8 23 1 4 14 23 55 66 77 88 4 6...
  • wow_bc
  • wow_bc
  • 2017-04-26 13:06:37
  • 196

二分查找求上界 下界

#include #include #include int a[10]={5,5,2,6,5,8,3,8,5,9}; int hig_binSearch(int n,int b,int e)...
  • haoyunsheng_1201
  • haoyunsheng_1201
  • 2012-09-19 13:26:27
  • 600

scala中的上界、下界、协变和逆变

class Pet(val name:String){ override def toString()=name } class Dog(override val name:String) exten...
  • u013360022
  • u013360022
  • 2016-03-17 16:07:22
  • 1025

Scala协变逆变上界下界

这里介绍一下关于scala中的协变逆变的有关知识,因为真的每次碰见都懵逼的感觉很难受。此处我不会对比Java中的相关协变逆变,只针对scala的进行讲解。 首先我说一下协变,所谓协变,白话文就是说让你...
  • qq_23660243
  • qq_23660243
  • 2016-08-04 10:33:12
  • 509
    个人资料
    持之以恒
    等级:
    访问量: 715
    积分: 522
    排名: 10万+
    文章存档
    最新评论