顺序查找

顺序查找

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:242            测试通过:161

描述

实现顺序查找。要求查找给定的值在数据表中相应的存储位置。本题目假定所有的元素互不相同,并且要求查找顺序为从后往前查询。

输入

输入包含若干个测试用例,第一行为测试用例个数k。每个测试用例占3行,其中第一行为元素个数n,第二行为n个元素值,即数据表中的元素,第三行为需要查找的元素。

输出

对每一测试用例,分别用一行输出两个值,分别表示相应的位置和查找次数,用空格隔开。如果查找不成功,则位置表0表示。

样例输入

1
5
2 4 1 7 9
7

#include<iostream>
#include<string.h>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
   int n;
   cin>>n;
   while(n--)
   {
       int t,flag=0,k,key,num=0;
       cin>>t;
       int data[100];
       memset(data,0,sizeof(data));
       for(int i=1;i<=t;i++)
        cin>>data[i];
        cin>>key;
       for(int i=t;i>=1;i--)
       {
           if(data[i]==key)
           {
              // num++;
               k=i;
               flag=1;
               break;
           }
       }
       if(flag==1)
        cout<<k<<" "<<t-k+1<<endl;
        else
            cout<<0<<" "<<t<<endl;
   }
    return 0;
}

题目来源

DataStructure(数据结构)算法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题目描述: 定义一个整型数组r,用于存储关键码集合,其r[1]~r[n]用于存储有效的关键码,r[0]留作它用,注意该数组按关键码有序。按照折半查找方法,查找在关键码集合是否有符合给定的记录,如果有,返回该记录所在数组下标,如果没有,返回0。要求输出查找过程,即输出每一轮的low,mid,high查找过程需要比较的关键码都输出。(数组的长度小于<100) -------------------------------------------------------------------------------- 输入样例: 10 2 3 5 6 8 9 11 17 44 58 5 17 4 -------------------------------------------------------------------------------- 输出样例: 1 5 10 8 1 2 4 3 3 3 4 5 3 1 5 10 8 6 8 10 17 8 1 5 10 8 1 2 4 3 3 3 4 5 0 -------------------------------------------------------------------------------- 输入描述: 各个命令以及相关数据的输入格式如下: 第一行输入关键码集合关键码的数目,假设输入的为n; 第二行输入n个关键码,以空格隔开,注意是整型; 接下来三行输入三个待查. -------------------------------------------------------------------------------- 输出描述: 对于每个待查,先输出查找待查的比较过程,即输出找到之前每一轮low,mid,high,以空格隔开,及与待查相比较的所有的关键码,每一轮占一行; 接下来如果找到待查,输出位置下标,如果没找到,输出0.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值