#include<cstdio> #include<algorithm> using namespace std; int arr[100];//定义一个全局数组,方便在不同的函数之间进行共享 bool binarySearch(int n,int x){ //查到了返回true //查不到返回false int left = 0;//左边和右边的下标 int right = n-1; while (left <= right){//考虑好边界情况 int mid = (left+right)/2;//找中间节点 if (arr[mid] == x){//拿中间节点和目标元素比较 return true; } else if (arr[mid] > x){ right = mid - 1;//右边缘往左边缩 //最后的边界情况/退出循环的情况,如果righth和left相等,下次right可能会变成left-1 } else{ left = mid+1;//最后一种可能性,左边缘往右扩 } } return false;//left == right } int main(){ int n,m; while (scanf("%d",&n) != EOF){ for (int i = 0; i < n; ++i){ scanf("%d",&arr[i]);//读取进来数组的每一个元素 } //排序 sort(arr,arr+n); //读取m个数据,分别找它们的下标 scanf("%d",&m); for (int i = 0; i < m; ++i){ int x; scanf("%d",&x); if (binarySearch(n,x)){ printf("YES\n"); } else{ printf("NO\n"); } } } }