题目描述
查找(Search)也翻译成搜索,是计算机科学中的一个很大的子类,也是一种计算机的最常见应用。其核心是利用现代电子计算机的存储能力将数据收集起来,然后用某种查找(搜索)算法在有效的时间内,把需要的数据找出来。

查找(搜索)算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。查找(搜索)算法按照操作次序可以分成三大类:顺序查找(深度优先、广度优先)、二分查找、直接计算存储位置(如Hash表)。针对应用的性能要求和问题规模,选择不同的查找(搜索)算法。

在解决查找(搜索)的问题时,首先考虑数据组织与结构的问题,即在程序中用何种形式存储数据的。一般根据数据集中数据元素间的相互关系:一对一、一对多、多对多,分别组织成:有序表(也叫线性表)、树、图。这就是构造数据抽象的过程。

利用数据元素间存储位置的顺序关系来组织的结构一般称作数组(Array)、也做列表(list)或向量(Vector),所有的高级程序设计语言都会支持这种存储结构。计算机的内存储器就是按照这种方式来组织的,因此这也是计算机中最基本的存储结构。

数组是这样一种描述一对一关系的数据组织结构:任何一个数据元素都有一个固定的存储位置,每个位置前、后各仅有一个相邻的存储位置。数组中元素的存储位置之间满足一对一的线性序关系,因此可以用自然数来描述每个存储位置上的数据元素,这些自然数就是数组元素的唯一标识——下标。

数组的存储组织结构决定了一个事实:易于存取数据元素、难于改变存储结构。存取数组中数据元素的操作代价可以不计,修改数组中数据元素的代价非常大。因此,数组适用于一次性把数据存储好,不改变或者很少改变数据元素间相互关系的应用中,不适用于那些需要边使用数据边修改结构的问题。

利用数组解决数据查找(搜索)问题的基本步骤是:把数据存储到数组中,按合理的操作次序把想要的数据找出来。关键点是:合理利用下标和数据元素之间的对应关系,解决应该存储什么、以什么顺序存储的问题。


你要解决的问题是:在给定的一个整数序列中,按照要求解决一个查找问题。

输入
输入分为两部分:

第一部分是第一行,有N+1个整数,第一个正整数为N(N<=10000),表示后跟一个有N个元素的整数序列。

第二部分从第二行开始直到EOF结束,每行为一个整数i。第二部分最多不超过1000行。

输出
输出为多行,与输入的第2部分顺序对应,每行输出为:

在这里插入代码片

从输入的整数序列中找到第i个整数并输出它的值,若i不在整数序列的下标范围(1~N)内则输出“OUT OF RANGE”。

样例输入

10 1 2 3 2 3 4 3 3 5 0
1
2
3
5
10
100

样例输出

1
2
3
3
0OUT OF RANGE

代码如下:

#include<stdio.h>
int main()
{int n;scanf("%d",&n);int a[n];for(int i=0;i<n;i++){scanf("%d",&a[i]);}int s;while(scanf("%d",&s)!=EOF){if(s>n){printf("OUT OF RANGE\n");}else{printf("%d\n",a[s-1]);}}return 0;
}

问题 D: Search Problem相关推荐

  1. 判断一个数是否存在于一个非递减的有序数列中 算法(Ordered Search Problem)

    1. Description Given a list of n numbers in non-decreasing order A={a1,a2,⋯,an} such that a1≤a2≤⋯≤an ...

  2. 问题 H: Search Problem (V)

    题目描述 查找(Search)也翻译成搜索,是计算机科学中的一个很大的子类,也是一种计算机的最常见应用.其核心是利用现代电子计算机的存储能力将数据收集起来,然后用某种查找(搜索)算法在有效的时间内,把 ...

  3. 问题 G: Search Problem (IV)

    题目描述 查找(Search)也翻译成搜索,是计算机科学中的一个很大的子类,也是一种计算机的最常见应用.其核心是利用现代电子计算机的存储能力将数据收集起来,然后用某种查找(搜索)算法在有效的时间内,把 ...

  4. 问题 F: Search Problem (III)

    [提交][状态] 题目描述 查找(Search)也翻译成搜索,是计算机科学中的一个很大的子类,也是一种计算机的最常见应用.其核心是利用现代电子计算机的存储能力将数据收集起来,然后用某种查找(搜索)算法 ...

  5. 问题 E: Search Problem (II)

    题目描述 查找(Search)也翻译成搜索,是计算机科学中的一个很大的子类,也是一种计算机的最常见应用.其核心是利用现代电子计算机的存储能力将数据收集起来,然后用某种查找(搜索)算法在有效的时间内,把 ...

  6. Exchange 2010 Search Problem

    If you can't find the contact mail or other email items. you can use this command to test it. Test-e ...

  7. Artificial Intelligence 人工智能 AI search AI 搜索

    文章目录 前言 一.Uninformed Search (无信息搜索) 二.Data structure for search tree 三.Breadth-first search (广度优先搜索) ...

  8. 人工智能——Search搜索问题

    人工智能-- Chapter02 Search 问题导向: 我们想采取一些行动来改变世界的状态(但由行为引起的变化完全是可以预料到的) 我们试着采取一系列的行动引导我们达到目标状态(可能是最小化行动的 ...

  9. 《D o C P》学习笔记(4 - 1)Dealing with complexity through search - Lesson 4

    备注1:每个视频的英文字幕,都翻译成中文,太消耗时间了,为了加快学习进度,我将暂停这个工作,仅对英文字幕做少量注释. 备注2:将.flv视频文件与Subtitles文件夹中的.srt字幕文件放到同1个 ...

最新文章

  1. 2020——网鼎杯 (青龙组)jocker
  2. 一阶微分方程的物理意义_MIT—微分方程笔记24 一阶常微分方程组
  3. Delphi的System.Str - 将数字格式化为字符串
  4. 二叉树前序、中序和后序遍历的非递归实现
  5. openwrt固定速率_固定速率与固定延迟– RxJava常见问题解答
  6. Linux命令【四】文件+虚拟内存+常用系统函数
  7. vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
  8. asp.net中验证码的实现
  9. 验证邮箱是否合法php,验证邮箱字段是否合法
  10. Git(4):提交代码时忽略不必要的文件或文件夹
  11. 西门子ug通用后处理_浅谈SIEMENS数控系统UG后置处理常用TCL语句使用技巧
  12. 人工智能十大发展方向
  13. [BZOJ5064]B-number
  14. 计算机是1946年由科学家发明,1946年第一台计算机叫什么
  15. Android也行5view斜体,Android TextView同时设置粗体和斜体
  16. HBase读写性能调优(一)
  17. 高级前端工程师和低级前端工程师的区别
  18. 软件开发职业是青春饭
  19. PCIE高性能RAID固态存储卡
  20. 在 github 建立blg

热门文章

  1. 持续集成部署Jenkins工作笔记0019---19.在Jenkins中指定Git客户端位置
  2. springcloud工作笔记096---springboot集成多线程_高并发_集成线程池的使用
  3. SpringCloud工作笔记067---消息推送_推送视频_推送图片_在通知栏里显示图片视频_自定义点击消息后的动作
  4. linux卸载时提示未安装,Ubuntu 安装卸载软件命令,及出现没有可用软件包提示时的处理办法...
  5. python编程(supervisor程序管理)
  6. linux 系统 指令lis,常用Linxu系统监控命令
  7. microsoftsql新建登录用户登录失败_史上最简单的Spring Security教程(九):自定义用户登录失败页面...
  8. 粗心能学计算机吗贴吧,考试丢分 , 真的是粗心那么简单吗?
  9. python重新启动整个脚本_每次对脚本进行更改时,都需要在终端中重新启动python...
  10. liquibase mysql_Liquibase MySQL:语法错误附近'????????????????'