题解 | #二分查找#
查找
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; }