lower_bound和upper_bound的实现
binary search算法特别讲究细节,微小的改动都会带来不同的结果,这篇博客将放上lower_bound和upper_bound的实现
lower_bound的实现
说明:inputs是升序排序好的数组,target是要搜索的元素
int lower_bound(vector<int>& inputs, int target) {int l = 0, r = inputs.size() - 1;while (l <= r) {int mid = l + (r - l) / 2; // (l + 2)/2 可能会溢出if (inputs[mid] < target) { // lower_bound和upper_bound的区别!!l = mid + 1;} else {r = mid - 1;}}return l;
}
upper_bound的实现
int upper_bound(vector<int>& inputs, int target) {int l = 0, r = inputs.size() - 1;while (l <= r) {int mid = l + (r - l) / 2; // (l + 2)/2 可能会溢出if (inputs[mid] <= target) { // lower_bound和upper_bound的区别!!l = mid + 1;} else {r = mid - 1;}}return l;
}
lower_bound和upper_bound的实现相关推荐
- C++ STL: lower_bound 和 upper_bound
接口声明 以下有两个不同的版本 lower_bound template <class ForwardIterator, class T>ForwardIterator lower_bou ...
- 【ACM】Uva 1152 (4 Values whose Sum is 0) 二分查找lower_bound() 和upper_bound()的使用
[问题描述] The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, ...
- vector的插入、lower_bound、upper_bound、equal_range实例
对于这几个函数的一些实例以便于理解: #include <cstdlib> #include <cstdio> #include <cstring> #includ ...
- lower_bound和 upper_bound 用法(STL)
lower_bound和 upper_bound的头文件是#include<algorithm> lower_bound 返回第一个大于等于 x 的数的地址/迭代器 upper_bound ...
- lower_bound和upper_bound算法
STL中的每个算法都非常精妙,接下来的几天我想集中学习一下STL中的算法. ForwardIter lower_bound(ForwardIter first, ForwardIter last,co ...
- STL中的lower_bound和upper_bound的理解
STL迭代器表述范围的时候,习惯用[a, b),所以lower_bound表示的是第一个不小于给定元素的位置 upper_bound表示的是第一个大于给定元素的位置. 譬如,值val在容器内的时候,从 ...
- 二分检索函数lower_bound()和upper_bound()
二分检索函数lower_bound()和upper_bound() 一.说明 头文件:<algorithm> 二分检索函数lower_bound()和upper_bound() lower ...
- lower_bound()和upper_bound()
二分检索函数lower_bound()和upper_bound() lower_bound():找到大于等于某值的第一次出现 upper_bound():找到大于某值的第一次出现 必须从小到大排序后才 ...
- C++/C--二分查找之lower_bound( )和upper_bound( )【转载】
文章目录 1 头文件及相关函数 2 函数lower_bound() 3 函数upper_bound() 4 示例 1 头文件及相关函数 头文件: #include <algorithm> ...
- C++ lower_bound 与 upper_bound 函数
头文件: #include <algorithm> 二分查找的函数有 3 个: 参考:C++ lower_bound 和upper_bound lower_bound(起始地址,结束地址 ...
最新文章
- ios时间差,以时间格式显示
- win7关于IIS发布网站时候数据库的问题,xp也一样
- 比PCA更好用的监督排序—LDA分析、作图及添加置信-ggord
- SetConsoleCtrlHandler 处理控制台消息
- Security+jwt+验证码实现验证和授权
- 判断机器学习算法或深度学习算法优势常考虑的点
- ini_set(display_errors,On);和error_reporting(E_ALL);
- kubernetes实践之运行aspnetcore webapi微服务
- java gc回收机制种类_JAVA的垃圾回收机制(GC)
- Maven 3.0.5 安装和配置:
- 通过BeanPostProcessor理解Spring中Bean的生命周期及AOP原理
- 思博伦仪表SRV4(ISIS)测试指南
- 关于h5页面链接分享到微信的分享样式如何修改成自定义卡片
- 3_寻找假币问题(分治法)
- cocoscreator中tween详细用法
- linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
- java中事务并发问题是_事务必会必知
- web期末网站设计大作业(中华传统文化主题学生网页设计源码)
- Ai带你玩股票项目(正式版)推出说明
- python公众号文章爬虫_拒绝低效!Python教你爬虫公众号文章和链接