题解 | #二分查找#
查找
https://www.nowcoder.com/practice/d93db01c2ee44e8a9237d63842aca8aa
#include <stdio.h>
#include <stdlib.h>
//二分查找
int BinarySearch(int nums[],int n,int x){
int low=0,high=n-1;
while(low<=high){
int mid = (low+high)/2;
if(nums[mid]==x){
return 1;
}
else if(nums[mid]<x){
low = mid+1;
}
else{
high = mid -1;
}
}
return 0;
}
int cmp(int *a,int *b){
return *a-*b;
}
int main() {
int n,nums[100],m;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&nums[i]);
}
qsort(nums,n,sizeof(int),cmp);
scanf("%d",&m);
int *search=malloc(sizeof(int)*m);
for(int i=0;i<m;i++){
scanf("%d",search+i);
*(search+i)=BinarySearch(nums,n,*(search+i));
}
for(int i=0;i<m;i++){
if(search[i]){
printf("YES\n");
}
else{
printf("NO\n");
}
}
}
return 0;
}
