#include<iostream>
#define MAXN 1000010
using namespace std;
int a[MAXN], m, n, q;
int find(int x)
{
int l = 1, r = n;
while (l < r)
{
int mid = l+(r-l) / 2;
if (a[mid] >= x)
r = mid;
else l = mid + 1;
}
if (a[l] == x)return l;
else return -1;
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; ++i)
{
cin >> a[i];
}
for (int i = 0; i < m; i++)
{
cin >> q;
cout << find(q) << " ";
}
return 0;
}
二分法查找
于 2024-03-29 11:29:41 首次发布
该篇文章介绍了如何在C++中使用二分查找算法find(),对给定的整数数组进行查找操作。程序首先定义数组a和输入n,m,接着输入数组元素和查询值q,最后调用find()函数并输出结果。
摘要由CSDN通过智能技术生成