C语言 递归函数实现二分查找

二分查找

#include<stdio.h>
int binary(int arr[], int min, int max, int key)
//min,  max 分别表示数组的最左和最右的边界,key需要查找的数
//二分查找必须为有序数组
{int mid = ( min + max ) / 2;          //数组中间值的下标if(key == arr[mid])                    //如果key 等于 arr数组中间值,就返回该值的下标mid{return mid;}if(key < arr[mid])                    //如果key在数组左边部分,就继续调用binary函数,并且把max 移位到mid - 1处{return binary(arr,min, mid - 1,key);}if(key > arr[mid])                   //如果key在数组右边部分,继续调用binary函数,并且把min移位到mid + 1处{return binary(arr,mid + 1,max,key);}else                                // 如果在数组中查找不到key值,则返回 -1{return -1;}
}int main()
{int arr[] = {1, 3, 5, 7, 9, 10, 13,14, 17, 22, 33, 56, 78};int len = sizeof(arr) / sizeof(int);       //获取数组长度int key = 33;                          //查找的值int ret = binary(arr,0,len -1,key);    //传参数,数组arr,数组最左边min = 0,最右边max = len(数组最右边)printf("%d的下标是:%d\n",key,ret);return 0;
}
执行结果

C语言 递归函数实现二分查找相关推荐

  1. 数据结构源码笔记(C语言):二分查找

    //实现二分查找的算法#include<stdio.h> #include<malloc.h> #include<malloc.h>#define MAXL 100 ...

  2. c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析

    C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...

  3. 二分查找算法举例说明C语言,C语言快速排序与二分查找算法示例

    本文实例讲述了C语言二分排序与查找算法.分享给大家供大家参考,具体如下: 题目:首先产生随机数,再进行快速排序,再进行二分查找. 实现代码: #include #include #include vo ...

  4. 递归函数与二分查找算法

    1. 了解思想 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67, ...

  5. c语言对随机数进行快速排序,C语言快速排序与二分查找算法示例

    本文实例讲述了C语言二分排序与查找算法.分享给大家供大家参考,具体如下: 题目:首先产生随机数,再进行快速排序,再进行二分查找. 实现代码: #include #include #include vo ...

  6. C语言中的二分查找法

    ...cpp 二分查找法也称折半查找法,是一种有序的查找方法,时间复杂度为log以2为底n的对数.如果是无序的则要先进行排序操作.基本思想是:把要查找的值和中间元素比较.例如在1 2 3 4 5 6 ...

  7. 【C语言】用二分查找法在有序数组中查找具体的某个数

    当给定一个有序数组,而我们要在这个数组中查找某个数时,我们常常用从头到尾的排除法遍历寻找,但是这种方式及其低效,n个数的数组最差要找n次.而后面我们会知道,二分查找法则高效的多,最差要找log以2为低 ...

  8. C语言算法——实现二分查找

    #include <stdio.h> int main() {int search(int *p,int len,int x); //函数的声明int a[] = {1,2,3,5,7,8 ...

  9. c语言折半查找法程序,C语言基础:二分查找法演示代码

    2015-11-07 06:30:02 阅读( 276 ) #include int binary_search(int array[], int value, int size) { int fou ...

最新文章

  1. EasyTransaction 1.3.0 发布,一站式分布式事务解决方案
  2. 使用Oauth2实现微服务的安全保护
  3. 信息系统项目管理师采购管理
  4. 到底要不要拯救地球?真·逻辑鬼才!| 今日最佳
  5. XStream 反序列化漏洞 (CVE-2020-26258 26259) 的复现与分析
  6. [翻译]RoboChamps城市挑战赛
  7. 语音推送提醒php,实时语音后台通知消息 - 百度免费的tts实现后台实时在线语音消息提醒 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  8. 用友ERP-NC系统 漏洞 NCFindWeb接口任意文件下载
  9. 2021年度中国商业地产100强揭晓,排名前十位变化不大
  10. Echarts formatter综合写法
  11. 盘点人工智能高薪职位
  12. Linux软件漏洞修复指南
  13. 关于FlashDB的应用-GD32F450上
  14. 2013年计算机试题(三),2013年计算机等级考试(一级Ms Office)经典试题(三)及答案...
  15. cpu和gpu各自的作用
  16. dp:股票系列I II III IV 含冷冻期 含手续费
  17. ORACLE的HINT详解
  18. Web Components入门实例教程
  19. ubuntu 网速测试方法
  20. 听说C语言很难?怎么不来看看我这篇(二)变量

热门文章

  1. 微信小程序转发动态消息的问题
  2. 浏览器 批量大文件上传下载
  3. Android系统之路(初识MTK) ------ Default Voice Control/输入法校准、自动校准、首字母大写、按键声音
  4. Go语言之log日志
  5. python字典格式_Python中的字典的格式与方法
  6. Mybatis笔记本(3)
  7. 【ROS实践入门(六)消息msg和服务srv文件创建与使用】
  8. 华为云服务器 共享文件夹在哪,华为云服务器 共享文件夹在哪
  9. 《哈佛大学公开课:公正-该如何做是好?》学习笔记3
  10. 软件测试就业难,没有面试机会,常年外包,人到30岁+还在岗位或工作的选择上身不由己,如何破局?