文章目录

  • ​​前言​​
  • ​​一、二分查找的分析图​​
  • ​​二、附上例题​​
  • ​​三、使用步骤​​
  • ​​1.引入库​​
  • ​​2.读入数据​​

前言


一、二分查找的分析图

P2249 【深基13.例1】查找_c++

P2249 【深基13.例1】查找_二分查找_02

二、附上例题

P2249 【深基13.例1】查找_c算法_03

传送门点这里!!!!!!

三、使用步骤

1.引入库

代码如下(示例):

#include<iostream>
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;
}

2.读入数据

P2249 【深基13.例1】查找_c++_04

P2249 【深基13.例1】查找_二分查找_05