zoukankan      html  css  js  c++  java
  • noj二分查找

    二分查找:

    要么左边,要么右边,哈哈哈哈

    描述
    给定一个单调递增的整数序列,问某个整数是否在序列中。
     
    输入
    第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。
     
    输出
    每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。
     
    输入样例
    5
    1 3 4 7 11
    3
    3
    6
    9
     
    输出样例
    Yes
    No
    No

     

    代码实现如下:

    #include <stdio.h>
    
    int n;
    
    int binarySearch(int a[],long key)
    {
        int left = 0;
        int right = n;
    
        while(left<=right)
        {
            int mid = (left+right)/2;
            if(a[mid]==key)
            {
                return mid;
            }
            else if(a[mid]<key)
            {
                left = mid+1;
            }
            else
            {
                right = mid - 1;
            }
        }
        return -1;
    }
    
    int main()
    {
        int array[10001];
        int i;
        int m;
        long  q;
        scanf("%d",&n);
        for(i=0;i<n;i++)
            scanf("%d",&array[i]);
        scanf("%d",&m);
        while(m--)
        {
            scanf("%ld",&q);
            if(binarySearch(array,q)>=0)
                printf("Yes
    ");
            else
                printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    assign、weak
    iOS 使用 github
    iOS 知识点
    thinkphp 具体常量,在view里面使用
    一个php+jquery+json+ajax实例
    php pdo操作
    nginx缓存
    php模版静态化技术
    php模版静态化原理
    thinkphp实现多数据库操作
  • 原文地址:https://www.cnblogs.com/kmxojer/p/9939619.html
Copyright © 2011-2022 走看看