找数字,用(折半查找法或二分查找法)

注意:基于 有序数组

int main()
{
int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int key = 1;
int left = 0;
int right = sizeof(arr)/sizeof(arr[0])-1;//下标
while (left <= right )
{
int mid =left - (left - right) >> 1;//若用int mid = (left+right)/2,容易溢出
if (arr[mid] > key)
right = mid - 1;
else if (arr[mid]<key)
left = mid + 1;else{
printf("找到了\n");
break;}
}
if(left>right)//来到这有两种情况,1,break跳出循环,找到了2,没找到
{
printf("找不到\n");
}
return 0;
}

延伸: 可编写一个猜数字游戏

提示: rand()函数--------产生随机数,放在<stdlib.h>中。

srand 函数--------放在<time.h>中。



C语言 找数字,用(折半查找法或二分查找法)相关推荐

  1. c语言 二分查找法 及二分查找法的时间复杂度。

    二分查找法是用来查找数组中指定的那个元素.使用二分查找的前提是数组是有序的.(这里我们假设是升序) 在现实生活中,我们要猜一个区间内的数字,比如1~10之间,我们通常会猜它的中间数5,再根据要猜的数和 ...

  2. 二分查找的平均查找长度_二分查找

    1.什么是二分查找 数据的查找在计算机的操作中非常常见,那么我们应该怎样在计算机中实现查找操作呢? 最简单的一种方法:"傻找",也就是一个一个的找,我们把数组中的每个元素都和我们想 ...

  3. php+求二分查找递归算法,PHP二分查找(递归和循环)

    二分查找可以通过递归和循环来实现, 思路如下: 将要查找的数和中间数进行比较, 如果相等,则表示找到,返回下标 如果要查找的数小于中间这个数,则说明要查找的数分布在数组左边,修改right边界,使其等 ...

  4. 查找算法:二分查找、顺序查找

    08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...

  5. c语言实验报告 折半查找法,C语言数组之冒泡排序+折半查找法(二分查找)

    冒泡排序算法 将相邻的元素进行两两比较,大的向后"冒", 小的向前"赶". 口诀: N个数字来排队,两两比较小靠前 外层循环N-1(控制需要比较的轮数). 内层 ...

  6. c语言指针的折半法查找,数据结构笔记7:折半查找法(二分查找法)及C语言实现...

    折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 折半查找算法 对静态查找表{5,13,19,21,37,56, ...

  7. 二分查找的平均查找长度_二分查找(折半查找)代码实现

    整理不易,手有余香请点赞! 折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 在折半查找之前对查找表按照所查的关 ...

  8. LeetCode 2080. 区间内查询数字的频率(哈希+二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 优化 1. 题目 请你设计一个数据结构,它能求出给定子数组内一个给定值的 频率 . 子数组中一个值的 频率 指的是这个子数组中这个值的出现次数 ...

  9. php顺序查找法,php二分查找、顺序查找算法

    摘要:php查找数组元素有内置的函数array_search和in_array,顺序查找对数组排序没有要求,二分查找法要求数组必须是一个有序数组!1.顺序查找function sequence_sea ...

  10. 学渣的刷题之旅 leetcode刷题 69.x的平方根(暴力法、二分查找)

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 输入: ...

最新文章

  1. 移动端框架如雨后春笋,你该如何选择?
  2. GridView总结二:GridView自带编辑删除更新
  3. X-007 FriendlyARM tiny4412 u-boot移植之内存初始化
  4. 百度咋做长文本去重(一分钟系列)--转
  5. kali设置中文_kali安装教程
  6. elasticsearch -- head插件
  7. Java7并发编程指南——第五章:Fork Join框架
  8. Codewars-Javascript训练手册:Date 对象
  9. python脚本文件格式_Python 基础语法_Python脚本文件结构
  10. 使用Eclipse插件DB viewer进行MySQL(SQL Server)等 数据库操作
  11. 电脑ps4,人在外心在家,教你用PC/MAC远程打PS4
  12. java省略号_在Java中使用省略号(…)
  13. STM32F103采集光照传感器BH1750程序,测试可以用
  14. 大数据比较 同比与环比的区别
  15. Oracle HFM OHS服务无法启动
  16. python类的实例化和继承
  17. mac 访问局域网其他电脑上的虚拟机
  18. 2018年买华硕笔记本 安装 Fedora 28,pcieport errors flood the journal
  19. 数据处理方法-算术编码(香农算法、java编码实现)
  20. nas安装emby_NAS安装Emby实现播放电视源

热门文章

  1. 用谷歌浏览器模拟打开天眼查网站并爬取需要的数据
  2. c#程序员和java薪酬_语言趋势和薪水:Java的未来之路
  3. NYOJ-14-会议安排问题
  4. 2018-3-28 摩尔定律
  5. Ubuntu 20.04 禁用笔记本电脑自带键盘
  6. 谷歌浏览器任何页面崩溃解决方法
  7. ps动作保存不覆盖原文件_Photoshop从入门到精通:图像的基本操作,新建打开保存关闭文件...
  8. “互联网“各职位的简称
  9. 计算机excel插入公式,Excel输入公式
  10. 10款微信公众平台相关的开源软件