二分查找
前提:二分查找的所有函数必须保证数组有序
升序数组
- lower_bound()函数:**>**目标值的第一个元素
- upper_bound()函数:**>=**目标值的第一个元素
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[] = {1,2,3,4,5,6,7,8,9};
cout << lower_bound(a,a+10,2) - a << endl;
cout << upper_bound(a,a+10,2) - a << endl;
return 0;
}
-
binary_search()函数:返回数组中是否含有目标值元素
#include<bits/stdc++.h> using namespace std; int main(){ int a[] = {1,2,3,4,5,6,7,8,9}; cout << binary_search(a,a+10,5) << endl; cout << binary_search(a,a+10,99) << endl; return 0; }
降序数组
在上述三个函数的最后一个参数中填greater<数据类型>()