STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数。

ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。

ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于值val的位置。

lower_bound和upper_bound如下图所示:

1.lower_bound函数源代码:

//这个算法中,first是最终要返回的位置

int lower_bound(int *array, int size, int key)

{

int first = 0, middle;

int half, len;

len = size;

while(len > 0) {

half = len >> 1;

middle = first + half;

if(array[middle] < key) {

first = middle + 1;

len = len-half-1; //在右边子序列中查找

}

else

len = half; //在左边子序列(包含middle)中查找

}

return first;

}

2.upper_bound函数源代码:

int upper_bound(int *array, int size, int key)

{

int len = size-1;

int half, middle;

while(len > 0){

half = len >> 1;

middle = first + half;

if(array[middle] > key) //中位数大于key,在包含last的左半边序列中查找。

len = half;

else{

first = middle + 1; //中位数小于等于key,在右半边序列中查找。

len = len - half - 1;

}

}

return first;

}

C语言bound函数,C++中lower_bound函数和upper_bound函数相关推荐

  1. oracle crc32函数,CSS_ORACLE中实现CRC32的计算函数,SOLARIS平台,声明:这是我07年的一个偶然 - phpStudy...

    ORACLE中实现CRC32的计算函数,SOLARIS平台 声明:这是我07年的一个偶然所得,借助了很多朋友和同事的帮助.希望能对在这个领域里面找寻的同行一些帮助. 首先用C在SOLARIS上编写一个 ...

  2. python数据处理常用函数_Python中常用操作字符串的函数与方法总结

    Python中常用操作字符串的函数与方法总结 这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下 例如这样一个字符串 Pyth ...

  3. php 与时间有关的函数,php中与时间相关的常用函数有哪些

    php中与时间相关的常用函数有:date_default_timezone_set().date_create().date_diff().date_timestamp_get().strtotime ...

  4. java怎么调用存储函数_java中调用存储过程或存储函数的方法

    java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...

  5. python中延时函数_python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  6. mysql 占比函数_MySQL中你必须了解的函数

    在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重.小编刚开始学习的时候也会有这个感觉.不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个.今天小编就把常 ...

  7. php的一些不安全函数,php中可能会产生安全问题一些函数

    php中可能会产生安全问题的一些函数 本文章适合正在学习代码审计的朋友,或者准备学习安全的朋友,大佬就可以绕过了,写的比较基础.我也是一个小白,总结一下对于php函数的理解,也分享一些自己觉得好用的方 ...

  8. mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客

    不常用:MySQL中的LOCATE和POSITION函数 LOCATE(substr,str) POSITION(substr IN str) 返回子串 substr 在字符串 str 中第一次出现的 ...

  9. r语言中paste函数_R中的paste()函数-简要指南

    r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...

最新文章

  1. 2022-2028年中国三轴陀螺仪行业市场深度分析及投资前景分析报告
  2. 计算机视觉与深度学习 | 粒子群算法与遗传算法(GA)及与蚁群算法(ACO)比较
  3. C++ Primer 第十六章 模板与范型编程
  4. linux局部变量特殊字符替换,变量,全局变量,环境变量,特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、sp...
  5. java类编写sql_用JavaBean编写SQL Server数据库连接类
  6. ------表达式---数值表示/算术运算符
  7. 首个万人远程培训项目顺利启动
  8. 恶意代码分析实战——高级反汇编
  9. 自动控制理论开环与闭环思考(从飞行控制角度)
  10. 如何根据vin码查询_车架号查询-VIN查询-车辆识别码查询-宜配网
  11. 偶2016年要做的几件大事
  12. SQL Server安装总是缺少msi等文件,出现错误1612、1706等解决办法
  13. 微信小程序之根据经纬度反查地址
  14. Spring mvc 中使用 kaptcha 验证码
  15. 风暴英雄修改服务器,风暴英雄已支持全球各服务器切换 国服不包含在内
  16. 企业基因决定企业命运
  17. C语言的鼠标制作(附源代码)
  18. php 随机获取字母,PHP获取随机数字和字母的步骤大全
  19. 【经典】非你莫属的名句二
  20. Instruments使用技巧

热门文章

  1. 云原生数据仓库AnalyticDB Mysql(ADB分析型数据库)-DML语法之新增插入数据详解
  2. win10北通手柄没反应_最新北通阿修罗手柄驱动win10下载地址电脑版-CC软件
  3. 郑州大学网络空间安全学院复试123
  4. 【无标题】关于摄像头的学习
  5. 方案设计-实现地图导航
  6. 3dsmax 2022 图文安装教程
  7. BI系统开发过程中用到的知识总结
  8. 【交互设计】七步打造手机网站
  9. PHP 观察者模式 理解
  10. Ruby on Rails 的秘笈是什么?