C语言算法——实现二分查找
#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语言算法——实现二分查找相关推荐
- 【经典排序算法】二分查找法 (动图演示 + C 语言代码实现)
[经典排序算法]二分查找法 (动图演示 + C 语言代码实现)
- 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/
大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...
- 数据结构源码笔记(C语言):二分查找
//实现二分查找的算法#include<stdio.h> #include<malloc.h> #include<malloc.h>#define MAXL 100 ...
- c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析
C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...
- 算法总结-二分查找算法
二分查找也称折半查找(Binary Search),是一种效率较高的查找方法.该算法要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.如果一个序列是无序的或者是链表,那么该序列就不能使用二 ...
- 数据结构与算法:二分查找
二分查找是搜索算法中的一种,用来搜索有序数组 二分查找: 是一种简单算法,其输入是一个有序的元素列表(必须有序的原因稍后解释).如果要 查找的元素包含在列表中,二分查找返回其位置:否则返回null. ...
- javascript数据结构与算法---检索算法(二分查找法、计算重复次数)
javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...
- java二分查找法_java算法之二分查找法的实例详解
java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...
- 查找算法:二分查找、顺序查找
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...
最新文章
- 教程 | 用AI生成猫的图片,撸猫人士必备
- java 枚举 循环_java – 在枚举中实现内部接口时的循环继承
- mysql-10临时表、复制表
- hikvision v2.3控件网页demo_《快速掌握PyQt5》第三十章 网页交互QWebEngineView
- Linux运行可执行文件
- ADO.NET,浅显
- 天线发射功率计算公式_增加发射功率,提高接收灵敏度就能提高通信距离吗?...
- ​智能驾驶疆场,海天瑞声的「数据」纵横论
- Hadoop CentOS 7 安装配置
- Mac 抓包工具Charles4.0.2破解版,安装使用
- 计算机发展对文学的影响,论计算机技术对文学接受的影响
- 市场上的智能语音助理,主要的工作原理是什么?
- paddle深度学习基础之训练调试与优化
- 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式
- axure产品原型设计工具
- 制作的自媒体短视频很模糊?教你3个方法,让视频变清晰
- 通过nginx防护可疑攻击的配置指引
- 魔术师的猜牌术(一维数组) C++程序
- 从节点到网络:掌握 Web3 基础知识
- 【物联网硬件安全】二、固件分析-固件提取
热门文章
- 转载:WORD中经常出现的小问题的解决方法
- 监控任务是否超时,超时则结束任务
- 价值流映射,在线流程图,在线绘图
- Python制作炫酷的烟花秀
- 华为p50会上鸿蒙吗,华为P50终于定了!徕卡相机大改+首发鸿蒙,或成最后绝唱…...
- 数字图像处理-频率域滤波
- 在react native中使用阿里iconfont图标
- matlab strcmp cell,matlab中strcmp函数的使用
- 黄章遭遇“猪队友“!魅族16S pro全面曝光,网友:感谢提前泄密
- Eclipse在运行同一包下Java程序出现Error提示框,解决方案