当前位置:网站首页>二分查找的细节坑
二分查找的细节坑
2022-07-31 15:55:00 【左手八嘎呀路】
二分查找的坑
介绍
- 二分查找是一个十分容易理解的一中算法,原理非常的简单,就是不断取出中间值进行对比,最终得出结果(这里不做过多介绍)
问题
- 二分查找容易写错
- 循环的判断条件有时候可以,有时候又不行
- 中间值索引取值,left/right = mid? mid+1? mid-1?
- 不一样的题用同样的二分查找就出现各种问题?
分析
先随机打开一个力扣的简单题,看看别人的题解

- 首先第一个坑是mid的溢出问题
这里不做介绍,一般都是用: (大 - 小) / 2 + 小
等价于:(大 + 小)/ 2
- 循环条件问题
自己写的时候,有时候的循环条件没问题,有时候就这么也跳不出循环,看别人的题解的条件又是五花八门
- 高低移位问题
高低移位也是和循环条件差不多,题解五花八门,和循环条件又紧紧相关
解决
视频链接:https://www.bilibili.com/video/BV1d54y1q7k7?spm_id_from=333.337.search-card.all.click
其实二分查找还是容易被忽视的,有非常多的细节,看了大佬的讲解收获还是比较大的,至少固定了属于自己的模板,在实际刷题就没有那么多烦恼和问题
- 循环条件
left + 1 < right
- 移位(没有±1的问题)
left/right = mid
- 返回(没有返回left/right的问题)
mid
边栏推荐
- 2020微信小程序反编译教程(小程序反编译源码能用吗)
- C程序是如何跑起来的01 —— 普通可执行文件的构成
- Bilateral filtering acceleration "recommended collection"
- 【MySQL】Mysql范式及外键作用
- MySQL的相关问题
- 第05章 存储引擎【1.MySQL架构篇】【MySQL高级】
- The arm button controls the flashing of the led light (embedded button experiment report)
- The use of border controls
- 多主复制的适用场景(2)-需离线操作的客户端和协作编辑
- 小程序:matlab解微分方程「建议收藏」
猜你喜欢

Premiere Pro 2022 for (pr 2022)v22.5.0

Premiere Pro 2022 for (pr 2022)v22.5.0

SringMVC中个常见的几个问题
![[MySQL] Mysql paradigm and the role of foreign keys](/img/9d/a4295de26683d7bca2b8e9d14f754b.png)
[MySQL] Mysql paradigm and the role of foreign keys

EF Core 2.2中将ORM框架生成的SQL语句输出到控制台

How to switch remote server in gerrit

第05章 存储引擎【1.MySQL架构篇】【MySQL高级】

After Grafana is installed, the web opens and reports an error

使用 GraphiQL 可视化 GraphQL 架构

C语言-函数
随机推荐
2.索引及调优篇【mysql高级】
mysql黑窗口~建库建表
国内市场上的BI软件,到底有啥区别
mongo enters error
删除表格数据或清空表格
What is the difference between BI software in the domestic market?
org.apache.jasperException(could not initialize class org)
腾讯云部署----DevOps
T - sne + data visualization parts of the network parameters
C语言”三子棋“升级版(模式选择+AI下棋)
Matlab matrix basic operations (definition, operation)
tensorflow2.0 cnn(layerwise)
苹果官网样式调整 结账时产品图片“巨大化”
Browser's built-in color picker
Delete table data or clear table
贪吃蛇项目(简单)
Premiere Pro 2022 for (pr 2022)v22.5.0
6-22 Vulnerability exploit - postgresql database password cracking
【7.29】Code Source - 【Arrangement】【Stone Game II】【Cow and Snacks】【Minimum Number of Spawns】【Sequence】
Delete the disk in good condition (recovery partition)