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

lower_bound 函数在二分中的应用

【lower_bound 函数简介】
● lower_bound 是 C++ STL 中二分查找的核心函数,定义在<algorithm>头文件中,专门用于有序序列的二分查找,返回第一个大于等于目标值的元素迭代器,是实现高效二分查找的便捷工具,无需手动编写二分循环,大幅降低代码复杂度。
● lower_bound 的时间复杂度为 O(log n),其中 n 为待查有序序列的元素个数。
● lower_bound 仅支持随机访问迭代器(vector/array/deque),list 需转存为 vector 后使用。
● 在 C++ 中,静态数组(如 int arr[N]; 形式的固定长度数组)完全可以直接使用 lower_bound 函数实现二分查找,核心要点是保证数组有序,并通过“数组首地址 + 尾地址偏移”的方式传递查找范围,用法与 vector 高度一致,仅在范围传参和下标计算上有细微区别。

// 查找升序数组中第一个 >= target 的元素
lower_bound(arr, arr + n, target); // 查找降序数组中第一个 <= target 的元素
lower_bound(arr, arr + n, target, greater<int>());

【算法代码一:vector存数据】

#include <bits/stdc++.h>
using namespace std;vector<int> v;
int n,x,val;int main() {cin>>n;while(n--) {cin>>x;v.push_back(x);}cin>>val;auto it=lower_bound(v.begin(),v.end(),val);if(it!=v.end()) {cout<<"Found at index:"<<it-v.begin();} else cout<<"Not found";return 0;
}/*
in:
5
1 3 7 12 61
11out:
Found at index:3
*/

【算法代码二:静态数组存数据】

#include <bits/stdc++.h>
using namespace std;const int maxn=1e3+5;
int a[maxn];
int n,val;int main() {cin>>n;for(int i=0; i<n; i++) {cin>>a[i];}cin>>val;auto it=lower_bound(a,a+n,val);if(it!=a+n) {cout<<"Found at index: "<<it-a;} else cout<<"Not found";return 0;
}/*
in:
5
1 3 7 12 61
11out:
Found at index: 3
*/




【参考文献】
https://www.bilibili.com/video/BV1juLBzREHp/
https://www.bilibili.com/video/BV1mt4y1u7Zg/
https://www.bilibili.com/video/BV1zhR5YnEjc/
https://c.biancheng.net/view/i0ur5s4.html

 

http://www.jsqmd.com/news/367359/

相关文章:

  • 长春重疾险理赔律师推荐:基于 7 维度分析框架的专业指南 - 铅笔写好字
  • 《构建之法》阅读笔记二:团队协作——破解软件开发的“人月神话”
  • 2026年管棒材检测系统TOP10优质厂商全景剖析 - 资讯焦点
  • 2026年2月淄博企业团建公司推荐,创意方案与落地能力双优品牌 - 品牌鉴赏师
  • AI绘画从入门到精通:Z-Image Turbo全功能解析
  • 贵州房产评估机构深度测评:这五家专业服务商谁更值得 - 精选优质企业推荐榜
  • 一键部署Qwen3-ASR-0.6B:打造你的私人语音助手
  • 贵阳房产收购服务深度测评:五大机构实力横评 - 精选优质企业推荐榜
  • 一键部署AI助手:Ollama+GLM-4.7-Flash组合方案
  • 2026年弹性租期算力租赁方案盘点:五大品牌实力评测 - 资讯焦点
  • 5分钟快速上手OFA图像描述模型:零基础实现图片自动生成英文描述
  • 《构建之法》阅读笔记三:用户需求与创新——软件开发的核心导向
  • BGE-Large-Zh小白指南:从安装到中文语义检索全流程
  • 认识Redis
  • lychee-rerank-mm代码实例:自定义Prompt工程与分数正则提取技巧
  • 零基础玩转Gemma-3-12B:Ollama部署视觉问答全流程
  • cv_unet_image-colorization档案修复标准实践:AI上色结果人工校验与修正SOP文档
  • 2026年五大异构设备算力调度适配公司:技术与场景双优榜单 - 资讯焦点
  • 手把手教学:AgentCPM本地研报生成工具部署教程
  • mPLUG视觉问答在电商场景的应用:商品图片自动描述生成
  • P14955 元素选择
  • GTE文本向量+Flask:打造企业级中文NLP服务
  • 千问大模型简介及简单应用测试
  • 深求·墨鉴使用技巧:提升手写笔记识别准确率
  • Qwen3-TTS-12Hz部署教程:Docker镜像体积精简与推理速度优化技巧
  • Qwen3-TTS实战:用AI语音为视频配音的完整教程
  • cv_resnet101_face-detection_cvpr22papermogface快速部署:Docker镜像+一键启动脚本使用指南
  • 文脉定序应用实践:客服工单知识匹配中重排序模块降低误判率42%
  • MiniCPM-V-2_6可信AI实践:Object HalBench低幻觉率验证案例
  • BGE Reranker-v2-m3 实战测评:文本匹配效率提升秘籍