3458:【例83.2】二分查找
[例 83.2] 二分查找
【信息学奥赛一本通-编程启蒙】3458【例83.2】二分查找
/*
3458:【例83.2】二分查找02
http://bas.ssoier.cn:8086/problem_show.php?pid=3458
*/
#include <bits/stdc++.h>
using namespace std;
int n,a[30005],t,x,lft,rht,mid;
int main( )
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
scanf("%d",&x);
lft=0;
rht=n;
while( rht-lft>1){
mid=(lft+rht)/2;
if( a[mid]>=x)
{
rht=mid;
}
else
{
lft=mid;
}
}
if( a[rht]==x)
{
cout<<rht<<' ';
}
else
{
cout<<-1<<' ';
}
}
return 0;
}
#include<iostream>
using namespace std;
int n,a[30005],t,x,l,r,mid;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&t);
for(int i=1;i<=t;i++){
scanf("%d",&x);
l=0,r=n;
while(r-l>1){
mid=(l+r)/2;
if(a[mid]>=x) r=mid;
else l=mid;
}
if(a[r]==x) cout<<r<<" ";
else cout<<-1<<" ";
}
return 0;
}
信息学奥赛一本通-编程启蒙 第1-17集
C++版-----信息学奥赛一本通-----编程启蒙(1-19)
《信息学奥赛一本通编程启蒙(C++版)》题库题解
《信息学奥赛一本通 编程启蒙C++版》第1课 -- 第86课
信息学奥赛一本通-编程启蒙 解题目录(部分)
一本通编程启蒙 题解(2023.11.20)
信息学奥赛一本通题解、题目详解、视频集
小学生讲C++(2023.12.03)