hzCPPOJ

静态表的顺序查找

时间限制:  1 s      内存限制:   128 MB
提交:988     正确:844     分值:34

题目描述

通常顺序查找的查找过程是从表中的第一个记录开始,逐个将记录的关键字和给定的查找值进行比较,如果某个记录的关键字与给定的值比较相等,则说明查找成功;否则如果直到最后一个记录,所有的关键字都与给定的值不相等,说明表中没有响应的记录,查找失败。


请以下述程序框架为基础,补充其中省略号部分代码。

程序框架:

#include <iostream>
using namespace std;
const int MAXN = 10000;
int main()
{
    int a[MAXN + 10]; //定义数组a

    int n; //存储共有几个数中查找
    int m; //存储需要查找几个数?
    //读入数据
    cin >> n >> m;
 
    for ( …… )  //因为要求输出的是数组编号,因此从0号开始存储
        {
            cin >> a[i];
        }
    //边读入待查找数,边进行查找。
    for (int i=1;i<=m;i++)
        {
            int key;
            cin >> key;
            int isfind = -1;
           …………
            cout << isfind << " ";           
        }   
    return 0;
}

输入

输入的第一行包含2个正整数n和k,分别表示共有n个整数和k次查询。其中n不超过500,k同样不超过500。
第二行包含n个用空格隔开的正整数,表示n个原始记录。
第三行包含k个用空格隔开的正整数,表示k次查询的目标。

输出

只有1行,包含k个整数,分别表示每一次的查询结果。如果在查询中找到了对应的数据,则输出其相应的数组编号,否则输出-1。
请在每个整数后输出一个空格,并请注意行尾输出换行。

样例

样例输入:
8 3 1 3 5 7 8 9 10 15 9 2 5
样例输出:
5 -1 2

提交人

AmberXie

来源/分类