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. linux统计文件的个数
  2. 微软亚洲研究院副院长刘铁岩:以计算之矛攻新冠之盾
  3. Ubuntu上手动安装sbt
  4. Node.js实践第一天
  5. Android 省份城市搜索,android - 非常不错的 城市省份的选择组件: citypicker
  6. selenium自动化测试_Selenium测试可实现有效的测试自动化
  7. sharepoint ECMAScript对象模型系列
  8. 苹果面试8大难题及答案
  9. jdk1.8要安装什么mysql_Window下安装JDK1.8+Tomcat9.0.27+Mysql5.7.28的教程图解
  10. observable java_Observable基本用法(RxJava)
  11. 你会换吗?报告称将有大批iPhone用户升级苹果5G新机
  12. 10 个用于 Linux 的开源轻量级 Web 浏览器
  13. 0804Python总结-单继承,多继承,菱形继承,__init__魔术方法(构造方法)
  14. 思科模拟器配置-生成树协议与链路聚合负载均衡
  15. 高三老师给大一学生的一封信
  16. 【VUE】实现分页组件
  17. java 微信时间戳转换工具_微信小程序实现时间戳格式转换
  18. 【雷丰阳-谷粒商城 】课程概述
  19. TextOut字体设置
  20. xPC信号采集和分析(2)

热门文章

  1. 蚂蚁金服SOFA开源负责人鲁直:不只是中间件 ,未来会开源更多
  2. kindle降级卡大树_从提示框:Kindle购物流程图,iOS降级和DIY焊接笔
  3. 博士生提高科研幸福感的途径
  4. 《快学Scala》第四章练习题答案+概述
  5. kernel调度(2)----主调度器和周期性调度器
  6. nunjucks的使用
  7. 用筛选法求100以内的素数
  8. 如何在Tableau中计算百分比
  9. Vue - 实现获取手机验证码倒计时 60 秒(手机号+验证码登录功能)
  10. 制造业数字化转型的五大法则!