1659_二分查找II

2022-5-16 18:17| 发布者: Hocassian| 查看: 49| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-8950487157199-Problem List-采集的数据-后羿采集器.html

Pro.ID

1659

Title

二分查找II

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1659

AC

93

Submit

341

Ratio

27.27%

时间&空间限制

  • Time Limit: 50000/50000 MS (Java/Others)     Memory Limit: 524288/524288 K (Java/Others)
  • 描述

    二分查找又叫折半查找。它采用的是"分治策略"。

    给出非降序排列的M个整数,查找是否存在某个整数,如果存在,则输出其位置。

    定义向量数据结构如下:

    #define  MAX_SIZE  5000000

    /// 简陋定义方式

    int mydata[ MAX_SIZE ];   /// 向量元素存放的数组

    int _size;   /// 向量元素的实际个数

    输入

    第一行是一个整数 M ( 0 < M ≤ 5000000 ) 表示整数的个数。

    接下来是M个整数,每个整数之间用一个空格分隔。

    接下来一行是一个整数N,表示要查找的关键字个数。

    接下来N个整数,表示要查找的关键字key。每个key之间一个空格分隔。

    输出

    Description

    二分查找又叫折半查找。它采用的是"分治策略"。

    给出非降序排列的M个整数,查找是否存在某个整数,如果存在,则输出其位置。

    定义向量数据结构如下:

    #define  MAX_SIZE  5000000

    /// 简陋定义方式

    int mydata[ MAX_SIZE ];   /// 向量元素存放的数组

    int _size;   /// 向量元素的实际个数

    Input

    第一行是一个整数 M ( 0 < M ≤ 5000000 ) 表示整数的个数。

    接下来是M个整数,每个整数之间用一个空格分隔。

    接下来一行是一个整数N,表示要查找的关键字个数。

    接下来N个整数,表示要查找的关键字key。每个key之间一个空格分隔。

    Output

    对每个要查找的key,输出一行结果:如果找到,输出key在这M个整数的秩,位置从0开始编号。

    如果有多个相同的向量元素,返回最后一个的秩。

    如果找不到,则输出这个元素如果插入到这个有序序列时,为保持序列依然有序,所应该插入的位置,即 秩。

    Sample Input

    10
    1 2 4 6 7 8 9 20 20 85
    4
    1 5 20 99

    Sample Output

    0
    3
    8
    10

    Hint

    注:元素5不存在数列中,若将其插入数列,应该在下标3的位置,所以返回3。

    元素99同理。

    Source
    Author

    样例输入

    10
    1 2 4 6 7 8 9 20 20 85
    4
    1 5 20 99

    样例输出

    0
    3
    8
    10

    提示

    注:元素5不存在数列中,若将其插入数列,应该在下标3的位置,所以返回3。

    元素99同理。

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部