//还可以使用map解决查找问题
//也就是说,可以让map中的key对应数组的值
              //让map中的value对应数组的值的下标
#include<cstdio>
#include<iostream>
#include<map>
using namespace std;
int main()
{
	int n,m;
	map<int,int> hmap;
	int a[1000];
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		hmap[a[i]]=i;
	}
	scanf("%d",&m);
	while(m--)
	{
		//map的底层是一颗二叉搜索树
		int x;
		scanf("%d",&x);
		if(hmap.find(x)==hmap.end()){
			printf("NO\n");
		}
		else
		printf("YES\n");
	}
}

但是它的实质时间复杂度相较于先排序再二分查找还是没变化,又增加了空间复杂度。仅作参考