C++代码如下
#include<iostream>
#include<cstdio>
#include<algorithm>//排序算法的头文件
using namespace std;
int a[100];
int b[100];
bool binary(int n,int target){ //二分查找过程
int left=0;
int right=n-1;
int middle;
while(left<=right){
middle=(left+right)/2;
if(target>a[middle]){
left=middle+1;
}
if(target<a[middle]){
right=middle-1;
}
else if(target==a[middle])
return true;
}
return false;
}
int main(){
int n; //数组a的大小
while(scanf("%d",&n)!=EOF){ //循环输入 可能要多次输入
for(int i=0;i<n;i++)// 数组a赋值
scanf("%d",&a[i]);
sort(a,a+n); //调用升序排序
int find; //要查找的数的个数 也就是数组b的大小
scanf("%d",&find);
for(int i=0;i<find;i++) //数组b赋值
scanf("%d",&b[i]);
for(int i=0;i<find;i++){
if(binary(n,b[i])){ //如果查找到了就输出yes
printf("YES\n");
}
else
printf("NO\n");
}</algorithm></cstdio></iostream>

}
return 0;

}