二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组中。这个函数定义在<algorithm> 头文件中,用来查找某个区域内是否包含某个元素。
对二分不熟悉的可以先看看我的这篇讲二分的文章:C++二分解释【初学者放心进,简单易懂】
(就简单描述一下,毕竟我也是一个编程小白)
那binary_search函数应该怎么用呢?
先来看一道题,这道题其实就是binary_search的一个简单应用(看完应该就明白了)
题目描述是这样的
由n个正整数构成的一个正整数序列,有q次循环,每次询问输入一个x,判断x是否存在在序列中,如果存在,输出yes,不存在输出no
#include<bits/stdc++.h>
using namespace std;
long long n,q,a[100001],x;
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n);