c++ 二分查找的函数 lower_bound & upper_bound & binary_search
来源:互联网 发布:手动榨汁机好用么 知乎 编辑:程序博客网 时间:2024/06/05 19:37
简介
C++ STL 中二分查找函数主要有这三种:
lower_bound()
upper_bound()
binary_search()
这三个函数都运用于有序区间。
用法
1. lower_bound(a+1,a+1+n,x)-a
返回一个非递减序列
程序相当于:
int lower_bound(){ int l=1,r=n; while(l<r) { int mid=(l+r)/2; if(a[mid]>=x) r=mid; else l=mid+1; } return l;}
2. upper_bound(a+1,a+1+n,x)-a
返回一个非递减序列
程序相当于:
int upper_bound(){ int l=1,r=n; while(l<r) { int mid=(l+r)/2; if(a[mid]>x) r=mid; else l=mid+1; } return l;}
3. binary_search(a+1,a+1+n,x)
返回一个非递减序列
程序相当于:
bool upper_bound(){ int l=1,r=n; while(l<r) { int mid=(l+r)/2; if(a[mid]>=x) r=mid; else l=mid+1; } if(a[l]==x) return true; else return false;}
总结
这些二分查找函数时间复杂度都是
1 0
- c++ 二分查找的函数 lower_bound & upper_bound & binary_search
- 二分查找:binary_search、lower_bound和upper_bound的实现
- 二分查找—lower_bound 、upper_bound 、binary_search
- STL中的二分查找--lower_bound/upper_bound/binary_search
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL 二分查找(binary_search(),lower_bound(),upper_bound() )
- STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL 二分查找三兄弟(lower_bound(),upper_bound(),binary_search())
- STL中二分查找相关算法(binary_search, lower_bound, upper_bound, equal_range)
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- (转)STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- scope_ptr
- 计算一个二叉树的深度
- 小谈Socket通讯
- angular路由的深入理解
- [NEFU119] 组合素数
- c++ 二分查找的函数 lower_bound & upper_bound & binary_search
- Struts2的数据验证
- 生成随机字符串的工具类
- php设计模式之二__单例模式
- Winform自定义控件事件
- Android RecyclerView 详解(2)---网格布局(支持多种分割线)
- 关于在页面加载完后使用js修改图片高度进行手机屏幕适配的问题
- 玲珑杯 1074 - Pick Up Coins(区间DP)
- Android错误之android.os.NetworkOnMainThreadException