二分查找算法-C语言实现
二分查找介绍
二分查找也称折半查找(Binary Search),是一种效率较高的查找方法。
二分查找适用场景
有序不重复的数组中元素的查找。
代码实现
int findNumIndex(int *arr,int len,int n)
{int end = len; int start = 0;//越界 if(n > *(arr+len-1) || n < *(arr)){return -1;}while(1){ int midIdx = (end + start) / 2; if(start == midIdx && *(arr+midIdx) != n){return -1;} if(*(arr+midIdx) == n){ return midIdx;}else if(*(arr+midIdx) > n){end = midIdx;}else{start = midIdx;} }
}
实现过程分析
首先,假设数组中的元素是按升序排列的,将最中间的数字和要搜索的数字进行比较,如果两者相等,则搜索成功; 否则,从中间数字位置将数组分为两个子数组,前数组和后数组,如果中间数字大于搜索数字,则进一步查找前数组中的元素,否则在后一个数组中进行查找。 重复上述过程,直到找到满足条件的数字,则搜索成功,或者直到子表所有的数字查找完毕还没有找到该数字,此时搜索不成功。
二分查找算法-C语言实现相关推荐
- 二分查找算法c语言伪代码,算法-二分搜索算法
算法:二分搜索算法(折半查找算法) 时间复杂度: 二分搜索算法概述 二分搜索算法伪代码 二分搜索算法实现 二分搜索算法概述 二分搜索算法,也称折半查找算法,即在一个有序数组中查找某一个特定元素.整个搜 ...
- C语言二分查找算法[基础算法]
该算法一般适用于查找数组元素 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少; 其缺点是要求待查表为有序表,且插入删除困难. 适用于不经常变动而查找频繁的有序列表. ...
- 二分查找算法的一点改进
在计算机科学中,二分查找,是一种在有序数组中查找某一特定元素的搜索算法.这种搜索算法每一次比较都使搜索范围减半.第一篇二分查找的论文发表于1946年,然而第一个没有bug的二分查找算法却是在1962年 ...
- 算法总结-二分查找算法
二分查找也称折半查找(Binary Search),是一种效率较高的查找方法.该算法要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.如果一个序列是无序的或者是链表,那么该序列就不能使用二 ...
- 二分查找算法(折半查找算法)
二分查找算法(折半查找算法) 二分查找又称折半查找.二分搜索.折半搜索等,是在分治算法基础上设计出来的查找算法,对应的时间复杂度为O(logn). 二分查找算法仅适用于有序序列,它只能用在升序序列或者 ...
- 使用 Copilot 编写和翻译二分查找算法
在这篇博客文章中,我将使用 Copilot 和 Copilot Labs 来编写并理解二分查找算法. 先决条件: 确保您已安装 GitHub Copilot 扩展程序和 GitHub Copilot ...
- 二分查找算法的两种实现方式:非递归实现和递归实现
二分查找的条件是对一组有序数组的查找,这一点很容易忘记,在使用二分查找的时候先要对数组进行排序. 先说一下二分查找的思路:一个有序数组,想要查找一个数字key的下标,首先算出中间下标mid,利用mid ...
- 二分查找算法为什么要先排序
其实二分查找算法就和我们在一个英文字典中找一个单词一样,比如要找middle这个单词,先把字典翻到大概中间的位置,那么现在字典就被分成两个部分了,middle这个单词要么在第一个部分,要么在第二个部分 ...
- LeetCode面试刷题技巧-二分查找算法代码思路解析
二分查找的思想 提及二分查找算法,我想大部分人都不陌生,就算不是学计算机的,基本上也都使用过二分查找的思想,不信的话,且听我慢慢为你道来. 不知道你有没有玩过这样一个游戏,猜数字.就是说一个人心里想了 ...
最新文章
- 基于云的SD-WAN骨干接入服务
- python整理数据_Python数据类型整理
- 电脑中没有oracle服务器,用AnySQL在没有oracle客户端的服务器上发送邮件
- error: expected ‘{‘ before ‘;‘ token
- RabbitMQ 的概念
- 注解版poi操作工具
- 解决 elementUI 在IE下 table 表格宽度不是100%的问题
- 在PS中读取敏感数据
- 微言Netty:分布式服务框架
- ARM裸机--看门狗定时器
- 20190118 阿耐---《艰难的制造》
- 机器学习——决策树算法之代码+数学实例解析
- Tumblr扫黄正式开始!AI鉴黄也许是老司机们的头号敌人
- 【火炉炼AI】机器学习023-使用层次聚类算法构建模型
- C#语言跟WPF学习视频
- QCon2016演讲《Rust语言的核心竞争力》总结和补充
- 怎么windows设置qq邮箱服务器,电脑中如何添加QQ邮箱到Windows Live Mail
- 海胆状聚苯乙烯与α-氧化铁复合结构微球/聚苯乙烯/氧化石墨烯/CNTs复合微球研究方式
- 网易2018校园招聘编程题
- 使用appium桌面版在win平台连接逍遥模拟器(以梦幻西游手游为例)