史上最牛二分查找,不服来战

news/2024/4/24 21:38:17/

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰内容专栏:这里是《算法详解》,笔者用重金(时间和精力)打造,将算法知识一网打尽,希望可以帮到读者们哦。

🥴内容分享:本期会对C语言中的二分查找进行解释,将教会大家什么是二分查找,怎样实现二分查找,将二分查找吃透。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)


目录

🫠什么叫做二分查找

😗二分查找的算法实现

 😂二分查找的具体实现

😉二分查找的作用

😇总结


🫠什么叫做二分查找

二分查找又称折半查找、二分搜索、折半搜索等,是在分治算法基础上设计出来的查找算法,对应的时间复杂度为O(logn)
二分查找算法仅适用于有序序列,它只能用在升序序列或者降序序列中查找目标元素。

😗二分查找的算法实现

二分查找的核心思想就是一半一半的不断缩小查找范围,大程度的减小查找的范围。(必须是在有序数组中才能使用二分查找)

算法实现:1 在初始状态下,将整个序列为查找范围,假设范围[a , b];2 找到序列中间的元素,(假设中间元素为mid),如果中间元素和查找数字一样,则查找成功;如果中间元素mid<查找数字,则查找数字在mid的左边,将a=mid+1, [a=mid+1, b] 作为新的搜素区域;反之,若中间元素小于目标元素,表明目标元素位于中间元素的右侧,将 [a,b=mid-1] 作为新的搜素区域; 3 重复第二步操作,知道找到目标元素,要是目标区间里没有元素了,无法在缩进,则查找不到目标元素;     这样讲或许有些生涩难懂,接下来以实际例子来画图帮助大家理解:

 😂二分查找的具体实现

😉二分查找的作用

看完这个代码后有人可能会说这个代码这么复杂,我有更简单的。来代码对比一下

的确,这样子代码是比较短,但是它的查找效率并不高,这里在10的范围里并不明显,万一要在2^32范围里早呢,这样子的效率就特别底下。但如果用二分查找的话最多查找32次就找到了,因为它每次删减一半。(不过,一定要注意,只能在有序数列中才能使用二分查找)


😇总结

1 确定查找的范围

2 计算中间元素的下标mid

3 用查找元素比较中间元素,mid大则left下标=mid+1;mid小则right=mid-1;mid = 查找元素,则找了

4 如果当left>right时,找不到元素。


http://www.ppmy.cn/news/47334.html

相关文章

4.2 矩阵乘法的Strassen算法

1.伪代码以及用到的公式 ​ ​ ​ 2.代码 package collection; ​ public class StrassenMatrixMultiplication {public static int[][] multiply(int[][] a, int[][] b) {int n a.length;int[][] result new int[n][n]; ​if (n 1) {result[0][0] a[0][0] * b[0][0…

渲染管线介绍

返回目录 大家好&#xff0c;我是阿赵。 渲染管线网上很多人都介绍过&#xff0c;我这个基本上是写给自己的看的一个笔记&#xff0c;各位不用介意。 一、渲染流水线的简单说明&#xff1a; 如果把渲染流水线列出来&#xff0c;大概有这些过程&#xff1a; CPU模型数据-顶点…

AIGC大潮下:入局门槛极低,投资人陷入空前焦虑

创业门槛低、基金不好投。但是金子总会发光&#xff0c;当项目找到合适的痛点&#xff0c;AIGC的能量将会逐渐释放。 “我的朋友在开发一个‘骂人’机器人&#xff0c;用AIGC训练&#xff0c;保证网络上和别人对骂不吃亏&#xff0c;”某位投资人讲道。在我们所了解的项目中&am…

PXE+Kickstart自动化安装操作系统

文章目录 PXEKickstart 完美自动化部署系统理论知识&#xff1a;1、PXE2、DHCP 实践实验&#xff1a;1、DHCP服务器配置2、TFTP服务器配置3、HTTP服务器安装4、PXE配置5、Kickstart实践配置 PXEKickstart 完美自动化部署系统 理论知识&#xff1a; 无人值守原理&#xff1a;K…

大厂对ChatGPT的开发利用和评估案例收录

ChatGPT已经进入各行各业&#xff0c;但是实际在工作中的有哪些应用呢&#xff1f;这里分享互联网一线大厂分享的一些实际使用案例&#xff0c;所有文章收录到 大厂对ChatGPT的开发利用和评估案例收录http://​www.webhub123.com/#/home/detail?projectHashid67792343&own…

初学SSM时做的-IKUN图书管理系统

项目介绍 项目工具:IntelliJ IDEA 2021.2.2 图书后台管理系统&#xff0c;采用SpringBootMybatiusThymeleaf&#xff0c;页面使用Element框架&#xff0c;使用RESTful API风格编写接口。 数据库使用mysql 已实现功能 基本增删改查,联表查询 拦截器登录验证 项目技术栈 Sp…

外卖小程序10

目录 Apache ECharts介绍入门案例实现步骤代码 总结需求1Service层思路代码实现Controller层ReportController Service层ReportServiceReportServiceImpl Mapper层OrderMapperOrderMapper.xml 需求2Service层思路代码实现Controller层ReportController Service层ReportServiceR…

技术分析内核并发消杀器(KCSAN)一文解决!

一、KCSAN介绍 KCSAN(Kernel Concurrency Sanitizer)是一种动态竞态检测器&#xff0c;它依赖于编译时插装&#xff0c;并使用基于观察点的采样方法来检测竞态&#xff0c;其主要目的是检测数据竞争。 KCSAN是一种检测LKMM(Linux内核内存一致性模型)定义的数据竞争(data race…

电路原理-反激式电路

1、1反激式电路是小功率电源(150W以下)当中&#xff0c;最常用的电路&#xff0c;它的工作原理如下。 1、2如图1&#xff0c;变压器T1&#xff0c;标记红点的端&#xff0c;12、3、A为同名端&#xff0c;10、1、B为异名端。 当MOS管导通的时候&#xff0c;初级绕组N1、…

ROS学习第九节——服务通信

1.基本介绍 服务通信较之于话题通信更简单些&#xff0c;理论模型如下图所示&#xff0c;该模型中涉及到三个角色: ROS master(管理者)Server(服务端)Client(客户端) ROS Master 负责保管 Server 和 Client 注册的信息&#xff0c;并匹配话题相同的 Server 与 Client &#…

Scrum of Scrums规模化敏捷开发管理全流程

Scrum of Scrums是轻量化的规模化敏捷管理模式&#xff0c;Leangoo领歌可以完美支持Scrum of Scrums多团队敏捷管理。 Scrum of Scrums的场景 Scrum of Scrums是指多个敏捷团队共同开发一个大型产品、项目或解决方案。Leangoo提供了多团队场景下的产品路线图规划、需求管理、…

函数式编程、Stream流操作复习

Lambda表达式 使用 当一个接口中只含有一个抽象方法时&#xff0c;这个接口就叫做函数式接口 一般使用FunctionalInterface注解来标识这个接口是一个函数式接口。 但不论有没有标识这个注解&#xff0c;只要接口中只有一个抽象方法&#xff0c;那么这个接口就是函数式接口 …

(PCB系列七)PCB差分信号布线及其要点

1、差分信号的定义 差分传输是一种信号传输的技术&#xff0c;区别于传统的一根信号线一根地线的做法&#xff0c;差分传输在这两根线上都传输信号&#xff0c;这两个信号的振幅相同&#xff0c;相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差…

ubuntu虚拟机下搭建zookeeper集群,安装jdk压缩包,搭建Hadoop集群与spark集群的搭建【上篇】

系列文章目录 在vmbox里面安装Ubuntu16.04并且配置jdk以及Hadoop配置的教程【附带操作步骤】 虚拟机vmware下安装Ubuntu16.04修改屏幕尺寸与更新源&#xff0c;以及对应的安装vim和vim常见的操作 Hadoop与主机连接以及20版本的Hadoop配置网络的问题_hadoop连不上网 Hadoop升…

deepstream开发学习笔记: 追踪越界

main.cpp 文件解析 1. 创建元素前的准备 GStreamer是一个开源的流媒体框架&#xff0c;用于构建音频和视频流应用程序。它提供了一组库和工具&#xff0c;可以通过它们将多个组件&#xff08;element&#xff09;组合在一起以构建流媒体应用程序。以下是对几个常见组件的简要解…

校验规则引擎

目录 一 架构设计图 二 表设计及数据展示 三 顶层接口 四 压测结果 五 其他规则引擎比较 适用场景&#xff1a;校验场景以及使用该思想进行可视化配置化开发&#xff08;可大幅提高开发效率&#xff0c;长期维护简单&#xff09; 例如&#xff1a;履约系统下单中的校验&…

数字IC笔试面试常考问题及答案汇总(内含各岗位大厂题目)

经历了无数的笔试面试之后&#xff0c;不知道大家有没有发现数字IC的笔试面试还是有很多共通之处和规律可循的。所以一定要掌握笔试面试常考的问题。 数字IC笔试面试常考问题及答案汇总&#xff08;文末可领全部哦~&#xff09; 验证方向&#xff08;部分题目&#xff09; Q1…

ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放

场景 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放&#xff1a; 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放_霸道流氓气质的博客-CSDN博客 上面讲…

scipy与MATLAB中四元数的不同之处

摘要 除了参数顺序不同scipy:(x,y,z,w)&#xff0c;matlab(a,b,c,d)以外&#xff0c;scipy.spatial.transform.Rotation中的四元数是Shuster’s convention(JPL convention)&#xff0c;与MATLAB中的四元数定义完全不同&#xff01;&#xff01;&#xff01; scipy scipy.sp…

轻松掌握FFmpeg编程:从架构到实践

轻松掌握FFmpeg编程&#xff1a;从架构到实践 (Master FFmpeg Programming with Ease: From Architecture to Practice 引言 (Introduction)FFmpeg简介与应用场景 (Brief Introduction and Application Scenarios of FFmpeg)为什么选择FFmpeg进行音视频处理 (Why Choose FFmpeg…