DUT 1009 很久以前的第一次写排序+二分

来源:互联网 发布:c#做windows窗口程序 编辑:程序博客网 时间:2024/05/16 15:16

重写了一一次。主要是想写二分。。。

#include<cstdio>#include<algorithm>using namespace std;const int maxn=100005;int arr[maxn];bool bsearch(int low ,int high ,int k){    int mid;    while(low<=high)    {        mid=(low+high)/2;        if(arr[mid]==k)        return true;        else if(arr[mid]<k)        low=mid+1;        else        high=mid-1;    }    return false;}int main(){    int n,q,i,k;    while(scanf("%d%d",&n,&q))    {        if(!n && !q) break;        for(i=0;i<n;++i)        scanf("%d",&arr[i]);        sort(arr,arr+n);        for(i=0;i<q;++i)        {            scanf("%d",&k);            if(bsearch(0,n-1,k))            printf("YES\n");            else            printf("NO\n");        }    }    return 0;}


 

原创粉丝点击