C语言bound函数,C++中lower_bound函数和upper_bound函数
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函数相关推荐
- oracle crc32函数,CSS_ORACLE中实现CRC32的计算函数,SOLARIS平台,声明:这是我07年的一个偶然 - phpStudy...
ORACLE中实现CRC32的计算函数,SOLARIS平台 声明:这是我07年的一个偶然所得,借助了很多朋友和同事的帮助.希望能对在这个领域里面找寻的同行一些帮助. 首先用C在SOLARIS上编写一个 ...
- python数据处理常用函数_Python中常用操作字符串的函数与方法总结
Python中常用操作字符串的函数与方法总结 这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下 例如这样一个字符串 Pyth ...
- php 与时间有关的函数,php中与时间相关的常用函数有哪些
php中与时间相关的常用函数有:date_default_timezone_set().date_create().date_diff().date_timestamp_get().strtotime ...
- java怎么调用存储函数_java中调用存储过程或存储函数的方法
java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...
- python中延时函数_python中实现延时回调普通函数示例代码
python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...
- mysql 占比函数_MySQL中你必须了解的函数
在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重.小编刚开始学习的时候也会有这个感觉.不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个.今天小编就把常 ...
- php的一些不安全函数,php中可能会产生安全问题一些函数
php中可能会产生安全问题的一些函数 本文章适合正在学习代码审计的朋友,或者准备学习安全的朋友,大佬就可以绕过了,写的比较基础.我也是一个小白,总结一下对于php函数的理解,也分享一些自己觉得好用的方 ...
- mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客
不常用:MySQL中的LOCATE和POSITION函数 LOCATE(substr,str) POSITION(substr IN str) 返回子串 substr 在字符串 str 中第一次出现的 ...
- r语言中paste函数_R中的paste()函数-简要指南
r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...
最新文章
- 2022-2028年中国三轴陀螺仪行业市场深度分析及投资前景分析报告
- 计算机视觉与深度学习 | 粒子群算法与遗传算法(GA)及与蚁群算法(ACO)比较
- C++ Primer 第十六章 模板与范型编程
- linux局部变量特殊字符替换,变量,全局变量,环境变量,特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、sp...
- java类编写sql_用JavaBean编写SQL Server数据库连接类
- ------表达式---数值表示/算术运算符
- 首个万人远程培训项目顺利启动
- 恶意代码分析实战——高级反汇编
- 自动控制理论开环与闭环思考(从飞行控制角度)
- 如何根据vin码查询_车架号查询-VIN查询-车辆识别码查询-宜配网
- 偶2016年要做的几件大事
- SQL Server安装总是缺少msi等文件,出现错误1612、1706等解决办法
- 微信小程序之根据经纬度反查地址
- Spring mvc 中使用 kaptcha 验证码
- 风暴英雄修改服务器,风暴英雄已支持全球各服务器切换 国服不包含在内
- 企业基因决定企业命运
- C语言的鼠标制作(附源代码)
- php 随机获取字母,PHP获取随机数字和字母的步骤大全
- 【经典】非你莫属的名句二
- Instruments使用技巧