二分查找noj

在这里插入图片描述

#include<stdio.h>
#define MAXSIZE 50000
#define TRUE 1
#define FALSE 0
int Search(int *a,int low,int high,int b);
int main()
{
    
    
    int n;
    int i=0;
    int a[MAXSIZE],b[MAXSIZE];
    int m,t;
    scanf("%d",&n);
    for(i=0;i<n;i++){
    
    
        scanf("%d",&a[i]);
    }
    scanf("%d",&m);
    for(i=0;i<m;i++){
    
    
        scanf("%d",&b[i]);
    }
    for(i=0;i<m;i++){
    
    
        t=Search(a,0,n-1,b[i]);
        if(t==TRUE)printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}
int Search(int *a,int low,int high,int b)
{
    
    
    int mid;
    if(low<=high){
    
    
        mid=(low+high)/2;
        if(a[mid]==b)return TRUE;
        if(a[mid]>b)return Search(a,low,mid-1,b);
        if(a[mid]<b)return Search(a,mid+1,high,b);
    }
    else return FALSE;
}

猜你喜欢

转载自blog.csdn.net/weixin_46112487/article/details/108962181