回复 7楼 cb_1212
呃呃 我明白你的意思了。但是可以用折半查找的办法写么?我写的那个怎么改才对呢?用顺序查找很费时。
#include<iostream> using namespace std; bool search(int key,int min,int max,int* a) // 这里你传递指针 { while(min<=max) { if(key == a[min++]) return 0; } return 1; //查找失败返回-1 } int main() { int i,n,m,key; int a[100000]; scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); while(m--) { scanf("%d",&key); if(search(key,0,n-1,a)) printf("NO\n"); else printf("YES\n"); } return 0; }