题解 | #二分查找#

查找

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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
02-24 10:34
门头沟学院 Java
已注销:之前发最美的女孩基本爱答不理,发最帅的hr终于有反馈了,女孩子也要自信起来
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务