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的实现相关推荐

  1. C++ STL: lower_bound 和 upper_bound

    接口声明 以下有两个不同的版本 lower_bound template <class ForwardIterator, class T>ForwardIterator lower_bou ...

  2. 【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, ...

  3. vector的插入、lower_bound、upper_bound、equal_range实例

    对于这几个函数的一些实例以便于理解: #include <cstdlib> #include <cstdio> #include <cstring> #includ ...

  4. lower_bound和 upper_bound 用法(STL)

    lower_bound和 upper_bound的头文件是#include<algorithm> lower_bound 返回第一个大于等于 x 的数的地址/迭代器 upper_bound ...

  5. lower_bound和upper_bound算法

    STL中的每个算法都非常精妙,接下来的几天我想集中学习一下STL中的算法. ForwardIter lower_bound(ForwardIter first, ForwardIter last,co ...

  6. STL中的lower_bound和upper_bound的理解

    STL迭代器表述范围的时候,习惯用[a, b),所以lower_bound表示的是第一个不小于给定元素的位置 upper_bound表示的是第一个大于给定元素的位置. 譬如,值val在容器内的时候,从 ...

  7. 二分检索函数lower_bound()和upper_bound()

    二分检索函数lower_bound()和upper_bound() 一.说明 头文件:<algorithm> 二分检索函数lower_bound()和upper_bound() lower ...

  8. lower_bound()和upper_bound()

    二分检索函数lower_bound()和upper_bound() lower_bound():找到大于等于某值的第一次出现 upper_bound():找到大于某值的第一次出现 必须从小到大排序后才 ...

  9. C++/C--二分查找之lower_bound( )和upper_bound( )【转载】

    文章目录 1 头文件及相关函数 2 函数lower_bound() 3 函数upper_bound() 4 示例 1 头文件及相关函数 头文件: #include <algorithm> ...

  10. C++ lower_bound 与 upper_bound 函数

    头文件: #include  <algorithm> 二分查找的函数有 3 个: 参考:C++ lower_bound 和upper_bound lower_bound(起始地址,结束地址 ...

最新文章

  1. ios时间差,以时间格式显示
  2. win7关于IIS发布网站时候数据库的问题,xp也一样
  3. 比PCA更好用的监督排序—LDA分析、作图及添加置信-ggord
  4. SetConsoleCtrlHandler 处理控制台消息
  5. Security+jwt+验证码实现验证和授权
  6. 判断机器学习算法或深度学习算法优势常考虑的点
  7. ini_set(display_errors,On);和error_reporting(E_ALL);
  8. kubernetes实践之运行aspnetcore webapi微服务
  9. java gc回收机制种类_JAVA的垃圾回收机制(GC)
  10. Maven 3.0.5 安装和配置:
  11. 通过BeanPostProcessor理解Spring中Bean的生命周期及AOP原理
  12. 思博伦仪表SRV4(ISIS)测试指南
  13. 关于h5页面链接分享到微信的分享样式如何修改成自定义卡片
  14. 3_寻找假币问题(分治法)
  15. cocoscreator中tween详细用法
  16. linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
  17. java中事务并发问题是_事务必会必知
  18. web期末网站设计大作业(中华传统文化主题学生网页设计源码)
  19. Ai带你玩股票项目(正式版)推出说明
  20. python公众号文章爬虫_拒绝低效!Python教你爬虫公众号文章和链接

热门文章

  1. 使用python进行分布分析(算数平均、几何平均、偏度、峰度,绘制直方图),以2022年上半年沪深300指数为例
  2. 机器学习 上网时长分析
  3. string 析构崩溃 assign
  4. iphone开发笔记和技巧总结
  5. VUE 中的搜索关键字
  6. Vue实现搜索关键字标红高亮加粗
  7. 呕心沥血三天三夜整理出2021最新最全微信小程序开发资源汇总
  8. 触觉马达DRV2605
  9. 论文阅读笔记markdown模板
  10. 地图导航APP开发功能