0.前言
致谢
Just now, 幸得各位大佬(违规用户名1A8F1D09、血色黄昏、Callous_Murder)相助,才将我快飞掉的二分查找拽回来,万分感谢。
同时,也给我极大的教训( 不能只看老师的课件?!).
1.正文
笔记
#include <cstdio>
using namespace std;
int a[1000005];
int n,m,l,r,mid,ans,num;
int search(int x) {
l=1,r=n ;
while(l<=r) {
mid=(l+r)/2;
if(a[mid]>=x) {
r=mid-1;
} else {
l=mid+1;
}
}
if(a[l] == x)return l;
return -1;
}
int main() {
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++) { scanf("%d",&a[i]); }
for(int i=1;i<=m;i++) {
scanf("%d",&num);
ans=search(num);
printf("%d ",ans);
}
return 0;
}
2.结语
话说都忘了二分怎么用了QwQ