1. 2. 折半查找法的使用

【问题描述】给定一个按值有序(升序)的N元整数数组A,采用折半查找法查找关键值k的位置,并给出查找的过程
【输入形式】

第一行:N

第二行:A[0], A[1], ... , A[N-1]

第三行:k
【输出形式】

第一行:k的位置(索引),若不存在则输出‘no’

第二行:查找的过程,每一次折半的中间(mid)位置的值,以逗号分隔。例如,1 2 3 4 5的中间位置为3,1 2 3 4的中间位置为2。
【样例输入】

样例1

11

2,5,8,11,15,16,22,24,27,35,50

22

样例2

11

2,5,8,11,15,16,22,24,27,35,50

10
【样例输出】

样例1

6

16,27,22

样例2

no

16,8,11
【样例说明】
【评分标准】必须使用折半法,其他方法不能得分。

#include <stdio.h>
int main()
{int n;scanf("%d", &n);// printf("%d\n", n);int a[500];int i;for (i = 0; i < n - 1; i++){scanf("%d", &a[i]);getchar();//   printf("%d ", a[i]);}scanf("%d", &a[i]);int k;scanf("%d", &k);// printf("\n%d\n", k);int mid;int low = 0, high = n - 1;int st[100];int j = 0;int flag = 0;while (low <= high){mid = (low + high) / 2;// printf("%d", mid);if (a[mid] == k){flag = 1;break;}if (a[mid] < k){st[j++] = a[mid];low = mid + 1;}if (a[mid] > k){// printf("%d", j);st[j++] = a[mid];high = mid - 1;}}if (flag == 1)printf("%d\n", mid);elseprintf("no\n");for (i = 0; i < j; i++){printf("%d", st[i]);if (i != j - 1)printf(",");}if (flag == 1)printf(",%d", a[mid]);
}

1.2折半查找法的使用相关推荐

  1. java学习笔记之折半查找法(二分法)

    2019独角兽企业重金招聘Python工程师标准>>> package Xhe.com; //折半查找法(二分法) public class halfSearch {     pub ...

  2. 数据结构--折半查找法 详解

      1. 折半查找法定义          折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, ...

  3. 递归应用:折半查找法

    折半查找法介绍 在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search).对数搜索(英语:logarithmic search),是 ...

  4. 二分法实战教学快速入门(折半查找法)

    //二分查找法(折半查找法) //主要思路:将一个顺序已经排好的数组如从小到大, //分别取第一位和末位为low和high,取mid为两者位置数的平均值 //输入key,每次在循环中判断key与mid ...

  5. 用折半查找法查找某一字符在字符串中的位置

    一.题目描述 从键盘输入一个字符,用折半查找法找出该字符在已排序的字符串str中的位置.若该字符不在str中,则打印输出**.(更好的阅读体验,请移步我的个人博客) 二.分析解答 此题主要考察字符串的 ...

  6. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。

    /*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...

  7. 一维数组——折半查找法

    [问题描述] 编写程序,利用折半查找法从一个升序排列的数列中查找某数是否存在,如果存在则输出该数的下标,否则输出no,输出查找过程中和中间元素比较的次数. [输入形式] 输入分3行:第一行为n的值,代 ...

  8. 每日C语言(The 7th day)——折半查找法

    太久没有更新了,偷懒了,趁着开学前多发几篇(偷笑) 老样子先上题目 T(题目):假设有若干个由大到小排序的数已经顺序存放在一个数组中,现输入一个数x,请用折半查找法找出该数是数组中哪个元素的值.找到则 ...

  9. 折半查找法(二分搜索法)

    学习C语言的时候,折半查找法应该是很多人绕不开的一个简单算法.作为一名C语言的初学者,第一次看这个算法的时候着实是有些头疼.不过仔细读读发现其实并没有想象中那么难. 折半搜索,也称二分搜索是一种在有序 ...

最新文章

  1. centos/linux扩容Swap分区
  2. c# 串口最简单接收十六进制
  3. 【原创】VSFTP: Login failure: 530 Login incorrect的解决办法
  4. HTTP错误 500.23-Internal Server Error 检测到在集成的托管管道模式下不适用的ASP.NET设置...
  5. Server Tomcat v6.0 Server at localhost was unable to stat within 45 seconds
  6. 算法分析与设计-实验二 动态规划算法设计
  7. From Hero to Zero
  8. TortoiseGit拉取或推送,输入账号密码后提示 HTTP Basic: Access denied fatal: Authentication failed 解决方案...
  9. 编写有效用例电子版_软件测试人员必须编写代码吗?
  10. SQL Server上的审计表和数据版本控制
  11. asp.net MVC Views-----Controller传递数据方法
  12. 数据结构与算法python—5.队列及python实现与leetcode总结
  13. 如何给ppt编辑页码_PPT中怎样设置页码
  14. WIN7 X64 解决无法安装IE11,以及无法点击微软升级包MSU的问题
  15. 小程序源码:笑话段子手-多玩法安装简单
  16. 解决Powershell前面没有base,无法激活虚拟环境问题
  17. 一种基于最大吸收功率的卫星太阳能电池板安装方案
  18. PHP jqGrid 表格数据更新帮助代码
  19. 谁的青春不迷茫-纪2020
  20. 【_ 記 】SpringBoot注解 (最新最全最详细)

热门文章

  1. CityMaker7 开发常见异常记录
  2. SQLyog 最新版本12.5-64bit 完美破解,亲测可用!
  3. http状态码大全304、201、203等等
  4. 青少年编程教育平台后台—登录注册(代码编写)
  5. 进程间通信方式有哪些-Linux进程间通信
  6. 版本管理工具 git和SVN 忽略文件和目录
  7. 什么是私约、助记词和密码?
  8. 【修复H5农场复利】黄金家园农场理财游戏源码Thinkphp开发 带商城仓库商店模块
  9. 数组反转,Java实现
  10. 再见 HTTP?10 分钟手把手教会你将网站切换到 HTTPS,安全有保障,yyds!