折半查找 题目编号:518

  • 题目描述
  • 评论

定义一个整型数组r,用于存储关键码集合,其中r[1]~r[n]用于存储有效的关键码,r[0]留作它用,注意该数组按关键码有序。按照折半查找方法,查找在关键码集合中是否有符合给定值的记录,如果有,返回该记录所在数组下标,如果没有,返回0。要求输出查找过程,即输出每一轮的low,mid,high值,查找过程中需要比较的关键码值都输出。(数组的长度小于<100)

输入描述

各个命令以及相关数据的输入格式如下:
第一行输入关键码集合中关键码的数目,假设输入的值为n;
第二行输入n个关键码,以空格隔开,注意是整型;
接下来三行输入三个待查值.

输出描述

对于每个待查值,先输出查找待查值的比较过程,即输出找到之前每一轮low,mid,high值,以空格隔开,及与待查值相比较的所有的关键码值,每一轮占一行;
接下来如果找到待查值,输出位置下标,如果没找到,输出0.

输入样例

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

思路:略

程序代码:

#include<iostream>#define MAXSIZE 1000using namespace std;int main()
{int n;int a[MAXSIZE];cin>>n;for(int i = 1; i <= n; i++)cin>>a[i];int key;while(cin>>key){a[0] = key;int mid, low = 1, high = n;while(low<=high){mid = (low + high) / 2;if(key < a[mid]){cout<<low<<' '<<mid<<' '<<high<<' '<<a[mid];high = mid - 1;}else if(key > a[mid]){cout<<low<<' '<<mid<<' '<<high<<' '<<a[mid];low = mid + 1;}else if(key == a[mid]){cout<<low<<' '<<mid<<' '<<high<<' '<<a[mid];cout<<mid;break;                }       }if(key != a[mid])cout<<0;}return 0;
}

D-OJ刷题日记:折半查找 题目编号:518相关推荐

  1. D-OJ刷题日记:查找 题目编号:984

    定义一个整型数组r,用于存储关键码集合,其中r[1]~r[n]用于存储有效的关键码,r[0]用于设置哨兵,试从数组的高端开始查找在关键码集合中是否有符合给定值的记录,如果有,则返回关键码的比较次数和该 ...

  2. D-OJ刷题日记:平均分 题目编号:890

    用结构体数组的方法改写例9-1 [例9-1]按表9-1的形式从键盘依次输入每个学生的学号.姓名.出生年月.3门课的成绩,计算并打印出每个学生的平均成绩. 输入描述 第一行,整数n,表示一共有n个学生. ...

  3. 刷题日记-SQL 查找最晚入职员工的所有信息

    牛客网 SQL1 查找最晚入职员工的所有信息 描述 有一个员工employees表简况如下: 请你查找employees里最晚入职员工的所有信息,以上例子输出如下: 示例: #如果数据库中存在empl ...

  4. 一个算法笨蛋的12月leetCode刷题日记

    类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...

  5. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  6. 菜菜的刷题日记 | 66.加一 Plus One

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/7 文章目录 [题目] [我的代码] [参考代码1] [参考代码2] [参考代码3] [思 ...

  7. 各大OJ刷题平台汇总

    前言 想成为一名高级工程师,算法还是要有的,至少在入门编程和进入公司之前都是必备的.刷题也可以很好的锻炼动手能力和逻辑思维,今天就给大家介绍一些知名的在线刷题平台,都是干货哦! 力扣(leetcode ...

  8. CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加

    ctfshow 图片篇引语 大部分题目仅涉及单一知识点,但可能有多种解法: 找到flag并不困难,关键是了解每一题背后的原理: 藏在哪?为什么可以这样藏?请多考虑这两个问题: misc脑图-misc之 ...

  9. 牛客刷题日记(2021-11-24)

    牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...

最新文章

  1. python写小程序-用python写个简单的小程序,编译成exe跑在win10上
  2. nginx 电子书_Nginx最详细的反向代理配置步骤,拿去不谢
  3. 宁波Uber优步司机奖励政策(12月14日到12月20日)
  4. mysql 大分页查询优化_Mysql骚操作:优化大分页查询
  5. java中的纸牌游戏_Java中的宾果纸牌游戏
  6. 计算机安装应用程序卸的步骤,电脑软件怎么卸载,干货在这里,如何卸载电脑上安装的软件...
  7. 淘宝ActiveMQ安装搭建
  8. FFMPEG结构体分析:AVCodecContext
  9. APP开发流程,移动应用开发流程
  10. 《软件随想录》:Joel Spolsky对计算机学生的七大建议
  11. 【kimol君的无聊小发明】—用python写音乐下载器
  12. c盘压缩卷压缩不了怎么办 c盘压缩卷只能压缩一半的解决方法
  13. Get Window Titles关键字——获取当前已经打开的浏览器窗口的所有Title
  14. 游戏建模的工具主要有哪些?
  15. 读书笔记--交流电的瞬时值和有效值
  16. Adnroid 自定义流式布局
  17. 摄像头(camera)数据传输中 码率/比特率(Bit rate) 与 带宽(Bandwidth)对应表
  18. javaweb之二维码
  19. 今日剁手 | 这些值得买的给你准备好了,快囤起来
  20. [历年IT笔试题]2014腾讯校园招聘笔试试题

热门文章

  1. 使用word插入无法编辑的对象
  2. EndNote20 【无法编辑Range】解决办法
  3. QQ不加好友临时会话聊天代码
  4. 百度地图(常用方法)
  5. 企业数字化转型的“迷途”和“指南”
  6. vertical-align middle 不生效的几种解决方式,图片居中几种方案
  7. 更改计算机菜单字体大小,windows10系统修改右键菜单字体的方法
  8. 零基础请进,影视解说必备的5个工具|不可错过的免费配音软件
  9. 贝叶斯网络应用实例一:胸部疾病诊所
  10. 日记-反思自制力不足与提出改进方案