#include <stdio.h>
int main()
{int search(int *p,int len,int x);  //函数的声明int a[] = {1,2,3,5,7,8,9};  //二分查找是针对排好序的数组而言的。int *p = a;         //指针指向数组a的首地址int len = sizeof(a)/sizeof(int);//求出数组的长度int x ;printf("请输入你要查找的数:");scanf("%d",&x);int t = search(p, len, x);if(t==-1)printf("你要查找的数%d不在数组中!!!",x);elseprintf("你查找的数%d在数组中的下标为:%d",x,t);printf("\n");
}int search(int *p,int len,int x){  //该函数用于二分查找算法int temp,low=0,high=len-1;      //low和high表示在这两个变量的范围内进行查找我们我要查找的数,也是在这两个数之间进行二分法while(low<=high){temp = (low+high)/2;   //查找low和high之间中间的下标。这也是二分查找的精髓if(p[temp]==x)return temp;  //如果查找到了,就返回这个数在数组中的下标。else if(x<p[temp])high = temp-1; //如果查找的数比二分查找得到中间的数还要小,那么就将high的指向指向一半前面的那一个数,在继续进行二分查找。else if(x>p[temp])low = temp+1; //如果查找的数比二分查找得到中间的数还要大,那么就将high的指向指向一半后面的那一个数,在继续进行二分查找。}return -1; //上面循环查找我们要得到的值,如果没有查找到,循环就会跳出,这个时候就返回-1,表示没有查到我们要得到的值。
}

C语言算法——实现二分查找相关推荐

  1. 【经典排序算法】二分查找法 (动图演示 + C 语言代码实现)

    [经典排序算法]二分查找法 (动图演示 + C 语言代码实现)   

  2. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

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

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

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

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

  5. 算法总结-二分查找算法

    二分查找也称折半查找(Binary Search),是一种效率较高的查找方法.该算法要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.如果一个序列是无序的或者是链表,那么该序列就不能使用二 ...

  6. 数据结构与算法:二分查找

    二分查找是搜索算法中的一种,用来搜索有序数组 二分查找: 是一种简单算法,其输入是一个有序的元素列表(必须有序的原因稍后解释).如果要 查找的元素包含在列表中,二分查找返回其位置:否则返回null. ...

  7. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  8. java二分查找法_java算法之二分查找法的实例详解

    java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...

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

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

最新文章

  1. 教程 | 用AI生成猫的图片,撸猫人士必备
  2. java 枚举 循环_java – 在枚举中实现内部接口时的循环继承
  3. mysql-10临时表、复制表
  4. hikvision v2.3控件网页demo_《快速掌握PyQt5》第三十章 网页交互QWebEngineView
  5. Linux运行可执行文件
  6. ADO.NET,浅显
  7. 天线发射功率计算公式_增加发射功率,提高接收灵敏度就能提高通信距离吗?...
  8. ​智能驾驶疆场,海天瑞声的「数据」纵横论
  9. Hadoop CentOS 7 安装配置
  10. Mac 抓包工具Charles4.0.2破解版,安装使用
  11. 计算机发展对文学的影响,论计算机技术对文学接受的影响
  12. 市场上的智能语音助理,主要的工作原理是什么?
  13. paddle深度学习基础之训练调试与优化
  14. 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式
  15. axure产品原型设计工具
  16. 制作的自媒体短视频很模糊?教你3个方法,让视频变清晰
  17. 通过nginx防护可疑攻击的配置指引
  18. 魔术师的猜牌术(一维数组) C++程序
  19. 从节点到网络:掌握 Web3 基础知识
  20. 【物联网硬件安全】二、固件分析-固件提取

热门文章

  1. 转载:WORD中经常出现的小问题的解决方法
  2. 监控任务是否超时,超时则结束任务
  3. 价值流映射,在线流程图,在线绘图
  4. Python制作炫酷的烟花秀
  5. 华为p50会上鸿蒙吗,华为P50终于定了!徕卡相机大改+首发鸿蒙,或成最后绝唱…...
  6. 数字图像处理-频率域滤波
  7. 在react native中使用阿里iconfont图标
  8. matlab strcmp cell,matlab中strcmp函数的使用
  9. 黄章遭遇“猪队友“!魅族16S pro全面曝光,网友:感谢提前泄密
  10. Eclipse在运行同一包下Java程序出现Error提示框,解决方案