[提交][状态]
题目描述

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

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

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

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

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

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

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


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

输入

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

第二部分从第二行开始直到EOF结束,每行为一个整数k。

输出

输出为多行,与输入的第2部分顺序对应,每行输出为:找到整数序列中最后一个值为k的整数并输出它的下标(范围是1~N),若找不到则输出“NOT FOUND”。

样例输入
10 1 2 3 2 3 4 3 3 5 0
1
2
3
5
10
100
样例输出
1
4
8
9
NOT FOUND
NOT FOUND
代码如下:

#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){for(int j=n-1;j>=0;j--){if(a[j]==s){printf("%d\n",j+1);break;}else{if(j==0){printf("NOT FOUND\n");}}}}return 0;
}

问题 F: Search Problem (III)相关推荐

  1. Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec Memory Limit: 4 MB Submit: 8787

    Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec  Memory Limit: 4 MB Submit: 8787  ...

  2. CF-1207 F. Remainder Problem(分块)

    CF-1207 F. Remainder Problem(分块) 题目链接 题意 一共5e5个数字,两种操作: 1 x y , a[x] += y 2 x y , ∑i∈nai,n∈[1,5e5],n ...

  3. A+B Problem III -- ACM解决方法

    A+B Problem III 描述 求A+B是否与C相等. 输入 T组测试数据. 每组数据中有三个实数 A,B,C(-10000.0<=A,B<=10000.0,-20000.0< ...

  4. Bailian2884 Problem III【入门】

    2884:Problem III 总时间限制: 1000ms 内存限制: 65536kB 描述 输入2行英文语句,每行包括1到多个单词,单词之间以空格作为分隔符(注意语句开头和结尾可能有空格,单词之间 ...

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

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

  6. 问题 H: Search Problem (V)

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

  7. 问题 G: Search Problem (IV)

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

  8. 问题 E: Search Problem (II)

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

  9. 问题 D: Search Problem

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

最新文章

  1. 自然语言处理(NLP)之使用TF-IDF模型计算文本相似度
  2. linux下查看GPU版本和详情信息 CUDA版本信息 anaconda版本信息
  3. 【错误记录】python requests库 Response 判断坑
  4. fastjson 判断是否包含_Fastjson, Gson, org.json.JSON三者对于JSONObject及JSONArray的判断
  5. html js设置div可拖动效果
  6. python的spider如何让鼠标不_python wooyun爬虫模拟鼠标等
  7. Selenium元素定位神器工具谷歌浏览器插件-ChroPath介绍,安装与使用
  8. 中易云嵌入式网关丨性能卓越+性价比高+应用场景丰富
  9. 15个C语言“谜题”,有你知道的吗?
  10. Synopsys Formality 2018操作流程
  11. js如何获取当天开始时间和结束时时间并传递(时间戳)给后端
  12. C语言程序设计 设计用函数实现模块化程序设计
  13. 大数据平台接入API数据
  14. 能给视频批量添加背景图片的小妙招
  15. win10 设定计划任务时提示所指定的账户名称无效,如何解决?
  16. 我的大学(2001-2005,从文艺青年到2B青年)
  17. mint-ui 各个组件示例
  18. KubeSphere 3.0:敞开胸怀、海纳百川
  19. 现在农村办厂暴利项目,有哪些?实现年收入百万以上!
  20. 理想和现实总是有差距

热门文章

  1. Netty工作笔记0074---handler链调用机制实例1
  2. 友元函数的访问权限和注意事项
  3. C语言 n*n矩阵求值及求逆矩阵
  4. hibernate多对多映射关系实现
  5. 有必要月底Linux内核,如何确定linux内核是否会在月底插入闰秒
  6. 随想录(串口屏带来的启示)
  7. js 给服务器发消息,的Node.js:发送消息至服务器
  8. c语言硬件信息监控,zabbix通过ipmi传感器监控浪潮服务器的硬件信息
  9. vsftp服务器的主配置文件的绝对路径,vsftp(FTP)服务器配置文件超详解说配置.doc...
  10. python对投标_batterytender-为Python del API投标-Jason Kölker Module