数据结构实验之查找四:二分查找
题目描述
在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-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; }
数据结构实验之查找四:二分查找相关推荐
- d - 数据结构实验之查找四:二分查找_【数据结构】资料
春天来了,关注我们吧!! 数据结构资料 1.栈和队列的共同特点是( ). A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 答案:A 解析:栈的操作只允许在栈的一端 ...
- d - 数据结构实验之查找四:二分查找_数据结构与算法笔记
二分查找(上):如何用最省内存的方式实现快速查找功能? 二分查找(下):如何快速定位IP对应的省份地址? 变体一:查找第一个值等于给定值的元素 变体二:查找最后一个值等于给定值的元素 变体三:查找第一 ...
- 学生成绩管理系统利用数据结构顺序表来进行二分查找,直接插入,快速排序操作
一.实验目的 1.掌握查找的不同方法,并能用高级语言实现查找算法. 2.熟练掌握顺序表和有序表的顺序查找和二分查找方法. 3.掌握排序的不同方法,并能用高级语言实现排序算法. 4.熟练掌握顺序表的选择 ...
- 数据结构---顺序查找和二分查找
数据结构-顺序查找和二分查找 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> int n;//查找元素数组的长度 vo ...
- 【Java数据结构与算法】第九章 顺序查找、二分查找、插值查找和斐波那契查找
第九章 顺序查找.二分查找.插值查找和斐波那契查找 文章目录 第九章 顺序查找.二分查找.插值查找和斐波那契查找 一.顺序查找 1.基本介绍 2.代码实现 二.二分查找 1.基本介绍 2.代码实现 三 ...
- Java数据结构与算法 线性查找和二分查找
查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...
- 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例
介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...
- 递归法实现折半查找(二分查找)
题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...
- 【Java】 查找数组中指定元素之 顺序查找 与 二分查找
今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...
- SDUT_2119 数据结构实验之链表四:有序链表的归并
点击打开链接 数据结构实验之链表四:有序链表的归并 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
最新文章
- c# tcp显示服务器图片,C# TCP通迅原码(服务器与客户端相互发送文本与图片)
- vue 2个方法先后执行_演讲你早该知道的2个演讲方法
- PHP-Curl模拟HTTP请求
- iPhone 7卖点不多出货量下降?剧透分析师又发报告
- [Swagger2]配置Swagger
- String中删除空格的7种方法!
- 事务并发、事务隔离级别
- 李晓枫:金融信息化发展和创新的三方面
- 检验多重共线性matlab_异方差太难?检验通不过?横截面分析难题的十大暴击!...
- 合并两个数组的两种方式的异同
- 代码生成的思考:MyMeta提供数据库架构,反射、Emit提供构建的提供动态创建的环境...
- Linux操作系统实践
- JS实现继承的几种方法总结
- python已停止工作请关闭该程序_解决PyCharm的Python.exe已经停止工作的问题
- stm32cubeMx---DCMI 配置与使用
- java 主机字节序_java字节序、主机字节序和网络字节序扫盲贴
- 它来了它来了,群晖NAS外网远程访问设置教程终于来了
- 干货丨千万流量大型分布式系统架构设计实战
- “纸上得来终觉浅,觉知此事要躬行”——博客起始
- 文笔极佳的郭靖夫妇悼文
热门文章
- 现代软件工程 作业 1 个人项目
- python怎么画图片 wafer map_Python wafer_map包_程序模块 - PyPI - Python中文网
- php中的file_upload,PHP文件上传(PHP file upload)
- oracle导入 不是dba,IMP-00013只有DBA才能导入由其他DBA导出的文件
- typescript的类型描述_一文学懂TypeScript的类型
- 安装oracle配置监听出错,安装失败,无法建立监听?
- Java的重载与覆盖,傻傻分不清!
- postgresql 查询序列_RazorSQL for Mac(数据库工具查询) v9.0.9
- 干货丨总结5类面试官特点和应对方法
- 计算机终端网络准入控制要求,计算机网络终端准入控制技术资料.pdf