题目描述

在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-1。

输入

一组输入数据,输入数据第一行首先输入两个正整数n ( n < = 10^6 )和m ( m < = 10^4 ),n是数组中数据元素个数,随后连续输入n个正整数,输入的数据保证数列递增。
随后m行输入m个待查找的关键字key

输出

若在给定的序列中能够找到与关键字key相等的元素,则输出位序(序号从0开始),否则输出-1。

示例输入

8 3
4 6 8 9 13 20 21 22
6
8
17

示例输出

1
2
-1

/*#include <stdio.h>
#include <stdlib.h>
#define max 1000010
int a[max];
int Search(int a[],int l,int r,int num)//查找函数非递归;
{
while(l<=r)
{
int h=(l+r)/2;
if(a[h]==num) return h;
else if(a[h]>num)
r=h-1;
else
l=h+1;
}
return -1;
}
int main()
{
int num;
int i,n,m;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
while(m--)
{
scanf("%d",&num);
printf("%d\n",Search(a,0,n-1,num));
}
return 0;
}*/
#include <stdlib.h>
#define max 1000010
int a[max];
void Search(int a[],int l,int r,int num)//查找元素的位置函数,递归。
{
if(l<=r)
{
int h=(l+r)/2;
if(a[h]==num) printf("%d\n",h);
else if(a[h]>num)
Search(a,l,h-1,num);
else
Search(a,h+1,r,num);
}
else
printf("-1\n");
}
int main()
{
int num;
int i,n,m;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
while(m--)
{
scanf("%d",&num);
Search(a,0,n-1,num);
}
return 0;
}

数据结构实验之查找四:二分查找相关推荐

  1. d - 数据结构实验之查找四:二分查找_【数据结构】资料

    春天来了,关注我们吧!! 数据结构资料 1.栈和队列的共同特点是( ). A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 答案:A 解析:栈的操作只允许在栈的一端 ...

  2. d - 数据结构实验之查找四:二分查找_数据结构与算法笔记

    二分查找(上):如何用最省内存的方式实现快速查找功能? 二分查找(下):如何快速定位IP对应的省份地址? 变体一:查找第一个值等于给定值的元素 变体二:查找最后一个值等于给定值的元素 变体三:查找第一 ...

  3. 学生成绩管理系统利用数据结构顺序表来进行二分查找,直接插入,快速排序操作

    一.实验目的 1.掌握查找的不同方法,并能用高级语言实现查找算法. 2.熟练掌握顺序表和有序表的顺序查找和二分查找方法. 3.掌握排序的不同方法,并能用高级语言实现排序算法. 4.熟练掌握顺序表的选择 ...

  4. 数据结构---顺序查找和二分查找

    数据结构-顺序查找和二分查找 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> int n;//查找元素数组的长度 vo ...

  5. 【Java数据结构与算法】第九章 顺序查找、二分查找、插值查找和斐波那契查找

    第九章 顺序查找.二分查找.插值查找和斐波那契查找 文章目录 第九章 顺序查找.二分查找.插值查找和斐波那契查找 一.顺序查找 1.基本介绍 2.代码实现 二.二分查找 1.基本介绍 2.代码实现 三 ...

  6. Java数据结构与算法 线性查找和二分查找

    查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...

  7. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  8. 递归法实现折半查找(二分查找)

    题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...

  9. 【Java】 查找数组中指定元素之 顺序查找 与 二分查找

    今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...

  10. SDUT_2119 数据结构实验之链表四:有序链表的归并

    点击打开链接 数据结构实验之链表四:有序链表的归并 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

最新文章

  1. c# tcp显示服务器图片,C# TCP通迅原码(服务器与客户端相互发送文本与图片)
  2. vue 2个方法先后执行_演讲你早该知道的2个演讲方法
  3. PHP-Curl模拟HTTP请求
  4. iPhone 7卖点不多出货量下降?剧透分析师又发报告
  5. [Swagger2]配置Swagger
  6. String中删除空格的7种方法!
  7. 事务并发、事务隔离级别
  8. 李晓枫:金融信息化发展和创新的三方面
  9. 检验多重共线性matlab_异方差太难?检验通不过?横截面分析难题的十大暴击!...
  10. 合并两个数组的两种方式的异同
  11. 代码生成的思考:MyMeta提供数据库架构,反射、Emit提供构建的提供动态创建的环境...
  12. Linux操作系统实践
  13. JS实现继承的几种方法总结
  14. python已停止工作请关闭该程序_解决PyCharm的Python.exe已经停止工作的问题
  15. stm32cubeMx---DCMI 配置与使用
  16. java 主机字节序_java字节序、主机字节序和网络字节序扫盲贴
  17. 它来了它来了,群晖NAS外网远程访问设置教程终于来了
  18. 干货丨千万流量大型分布式系统架构设计实战
  19. “纸上得来终觉浅,觉知此事要躬行”——博客起始
  20. 文笔极佳的郭靖夫妇悼文

热门文章

  1. 现代软件工程 作业 1 个人项目
  2. python怎么画图片 wafer map_Python wafer_map包_程序模块 - PyPI - Python中文网
  3. php中的file_upload,PHP文件上传(PHP file upload)
  4. oracle导入 不是dba,IMP-00013只有DBA才能导入由其他DBA导出的文件
  5. typescript的类型描述_一文学懂TypeScript的类型
  6. 安装oracle配置监听出错,安装失败,无法建立监听?
  7. Java的重载与覆盖,傻傻分不清!
  8. postgresql 查询序列_RazorSQL for Mac(数据库工具查询) v9.0.9
  9. 干货丨总结5类面试官特点和应对方法
  10. 计算机终端网络准入控制要求,计算机网络终端准入控制技术资料.pdf