当前位置: 首页 > news >正文

lower_bound和upper_bound

lower_bound和upper_bound

algorithm库中基于二分查找的高效工具,时间复杂度均为 \(O(\log n)\)

使用前提

被搜索的数组(或容器区间)必须是有序的(单调递增或单调递减)。如果数组无序,结果是未定义的。

核心区别

处理“相等”元素时的逻辑,以及配合比较器(如 greater())时的行为。

lower_bound(begin, end, val)

寻找第一个 大于等于 (\(\ge\)) val 的元素。(如果我想把 val 插入数组并保持有序,这是我可以插入的最左边的位置。)
返回值:迭代器(如果所有数都比 val 小,返回 end。)

upper_bound(begin, end, val)

寻找第一个 大于 (\(>\)) val 的元素(严格大于)。(如果我想把 val 插入数组并保持有序,这是我可以插入的最右边的位置
返回值:迭代器(如果所有数都比 val 小或者相等,返回 end。)

当数组是从大到小排列时,我们需要传入比较器 greater<int>()
注:
1>查不存在的元素时,两者通常指向同一个位置。
2>这两个函数返回的是 iterator (迭代器)。要获取数组下标(index),必须减去起始迭代器

vector<int> v = {1, 2, 4, 6};
auto it = lower_bound(v.begin(), v.end(), 4);// 获取下标
int index = it - v.begin(); // index = 2// 判断是否没找到 (非常重要!)
if (it == v.end()) {// 所有元素都比 4 小
}
http://www.zskr.cn/news/83495.html

相关文章:

  • [曼奇] 基础班 第62节 73头像4
  • 12.11晚课
  • 12月11日总结 - 作业----
  • 详细介绍:Redis 零基础入门到实战教程(视频教程)
  • 2025内部孔隙率检测公司选哪家?这8家专业机构值得关注 - 栗子测评
  • Claude自动调用Skills解析xlsx文件
  • 对“挑战”的元回应:从“解决难题”到“演化生态”
  • 2025年台式高速离心机/土壤/微型/微孔板/高速冷冻离心机国内知名厂家/有哪些厂家/哪家性价比 - 品牌推荐大师1
  • 2025年如何选择排名前列的泵送剂外加剂品牌厂家? - 讯息观点
  • Meta闭源模型vocado、Google Gemini TTS情绪语音、微软智能体新高度
  • 什么?全面解析机器人流程自动化的定义与核心概念就是RPA
  • 全网热议!2025专业HIFI耳机口碑推荐,甄选5款优质耳机 - 讯息观点
  • 【转载】Qt中QStyledItemDelegate的使用(一)
  • 2025年聚合物修补料销售厂家推荐,精选修补料砂浆供应商 - 讯息观点
  • 学习路线
  • GPT-0: Attention+Transformer+可视化 - 详解
  • 【Prompt 2】:提高产出效率
  • 2025年离心机国内知名厂家,离心机品牌排行推荐,离心机头部企业优质供应商,离心机有哪些厂 - 品牌推荐大师1
  • Curl → Python / YAML转换器
  • 2025年12月有实力/质量好/口碑好/信用好的实验室通风柜实验台生产厂家有哪些? - 品牌推荐大师
  • 2025年12月GPU平台选哪家?权威推荐智算认证,无隐性收费测评榜 - AIEO
  • 2025数控车铣复合机床厂家:实力与特色之选 - 栗子测评
  • AC700开启linein通道方法
  • 2025热流道系统哪家好?热流道厂家推荐品质之选 - 栗子测评
  • 2025年质量好的郑州气体报警器厂家最新推荐权威榜 - 朴素的承诺
  • 在windows平台搭建一个mini版本的k8s集群
  • Java基础——方法 - 详解
  • 【 Java八股文面试 | Redis篇 缓存疑问、持久化、分布式锁 】
  • B站学习视频
  • 2025气模厂家标杆榜:气模/滑梯/水上乐园/城堡/游乐场/运动/嘉年华/美陈/帐篷/设计综合指南,广州丽丽玩具以25年匠心,让欢乐气模风靡全球 - 海棠依旧大