template<typename T>
inline Rank Vector<T>::search(T const & e, Rank lo, Rank hi) const
{Rank mid = (hi - lo) >> 1;if (e < _elem[mid])hi = mid;else if (_elem[mid] < e)lo = mid + 1;else return mid;return -1;
}

1.1.优化代码(或者说增加代码可理解性)的一点

这里我们用的两个判断语句分支都用的是小于号,可以理解为,当 e < _elem[mid] , 关键码在序列的左边,反之,在右边。

1.2.复杂度

最差的情况为n/2不断的递减,也可以理解为log n 不断的减少一层找到最后的关键码(类似于树的深度)。

复杂度是  O(log n )

转载于:https://www.cnblogs.com/Royzzzzz/p/11067027.html

1.给定区间的二分查找相关推荐

  1. java二分查找范围区间_二分查找(Java实现)

    二分查找:递归实现 public class BinarySearch { /** * @param arr 代查找的数组,需要有序 * @param left 查找区间的左界限 * @param r ...

  2. leetcode 436. Find Right Interval | 436. 寻找右区间(二分查找不小于某值的第一个位置)

    题目 https://leetcode.com/problems/find-right-interval/ 题解 这题考察点不难,就是个普通的二分查找.详细过程是: 因为 start 是唯一的,所以先 ...

  3. LeetCode 436. 寻找右区间(二分查找)

    1. 题目 给定一组区间,对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的"右侧". 对于任何区间,你需要存储的满足条 ...

  4. LeetCode——二分查找

    二分查找 目录 二分查找法 求开方 大于给定元素的最小元素 有序数组的 Single Element 第一个错误的版本 旋转数组的最小数字 查找区间 1. 二分查找法 正常实现 public int ...

  5. LeetCode力扣刷题——居合斩!二分查找

    二分查找 一.算法解释         二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取 一部分继续查找,将查找的复杂度大大减少.对于一个长度为 O ( n ) 的数组 ...

  6. 【二分查找延伸--实际算法应用】数组类题目

    声明:博主是基于labuladong微信公众号文章模板驱动刷题,进行的自我刷题感悟和记录在此. 模板详情见labuladong微信公众号文章文末:原创于自己在此基础上的笔记.感悟.整合其它文献和自己的 ...

  7. 二分查找和二分答案(洛谷)

    细节好可怕~ 二分查找算法的细节剖析_JackComeOn的博客-CSDN博客原文:https://www.cnblogs.com/kyoner/p/11080078.html我周围的人几乎都认为二分 ...

  8. LeetCode 352. 将数据流变为多个不相交区间(map二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个非负整数的数据流输入 a1,a2,-,an,-,将到目前为止看到的数字总结为不相交的区间列表. 例如,假设数据流中的整数为 1,3,7,2,6,- ...

  9. LeetCode 327. 区间和的个数(multiset二分查找/归并排序)

    文章目录 1. 题目 2. 解题 2.1 动态规划超时 2.2 二分查找 2.3 归并排序 1. 题目 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 low ...

最新文章

  1. 【机器学习基础】(三):理解逻辑回归及二分类、多分类代码实践
  2. allegro PCB 引脚网络名不显示之解决办法
  3. 最近发现系统rabbitmq丢消息比较严重,于是想了些方案来查找原因,给将消息发送方式添加确认机制。 我们在本地模拟了wms发送打标消息的场景. 1. 有事务 2. 先发点对点队列, 再发订
  4. 好物推荐|下载超过 23w 次的 IDE 插件,让效率飞速提升
  5. ps自定义形状工具_ps中借助形状工具绘制卡通图
  6. fastjson取某个key_JAVA学习:怎么给函数取一个“合理”的名字
  7. matlab的图像滤波,Matlab实现图像滤波
  8. uni-app与java的交互且使用小米球Ngrok连接到手机微信小程序
  9. 在IFC标准模型如何实现室内灯光管控?
  10. 《应用时间序列分析:R软件陪同》——第 3 章 一元时间序列数据的拟合及预测 3.1 一些估计和预测方法的基本数学原理...
  11. 统计文件中元音字母的数量
  12. 解决premiere导入视频一卡一卡(闪烁),或者音画不同步(真正无损)。
  13. 如何评价微软在数据中心使用FPGA代替传统CPU的做法?
  14. 工程实践 | 在 Flutter 中实现一个精准的滑动埋点
  15. 典型数据的时、频域图
  16. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然...
  17. 360兼容性问题:教资报名请使用搜狗浏览器(兼容模式)、360浏览器(兼容模式)、QQ浏览器(内核模式请选择:总是使用IE内核)、IE系列浏览器。
  18. .Net读取post传递参数(body)小计
  19. 河南工业大学c语言考试题库,c语言题库(编程)河南工业大学 河工大 c语言期末考试题库...
  20. SpringCloud多线程链路追踪

热门文章

  1. SAP CRM里的settype和relationship有什么区别
  2. 关于软件公司如何进行知识分享的一些讨论
  3. python 连通域_连通域的原理与Python实现
  4. 电脑卡顿不流畅怎么解决_电脑用久了卡怎么办?学会这四招解决你的电脑卡顿问题...
  5. python学习-字符串格式化
  6. ios mysql 创建不同的用户表_iOS中数据库-创建表-增删改查数据-基础语法
  7. c语言高函数正确形式,计算机二级C语言考点解析:函数
  8. php 检测数组内是否有空值,PHP判断数组是否为空的常用方法
  9. 锁相环PLL/MMCM的使用
  10. 新电脑怎么分盘_2020双十一预算一万该怎么组装电脑(含显示器)新媒体,视频剪辑等影视专业装机指南...