文章目录
- 前言
- 一、二分查找的分析图
- 二、附上例题
- 三、使用步骤
- 1.引入库
- 2.读入数据
前言
一、二分查找的分析图
二、附上例题
三、使用步骤
1.引入库
代码如下(示例):
using namespace std;
int a[1000005];//开够内存
int main() {
int n = 0, m = 0;
cin >> n >> m;//输入数字个数和询问次数
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
for (int i = 0; i < m; i++)
{
int temp = 0;
cin >> temp;
int L = 1, R = n;//左 和右 此时下标从1开始 稍微做些调整即可
int ans=-1;
while (L <= R)//循环进行的条件
{
int mid = (L + R)>>1;//右移一位相当于/2
if (a[mid] == temp)
{
ans = mid;
R = mid - 1;//防止有重复的数,找出第一次出现的数
}
else if(a[mid]<temp)
{
L = mid + 1;
}
else
{
R = mid - 1;
}
}
cout << ans << " ";
}
return 0;
}