当前位置:网站首页>二分查找的坑
二分查找的坑
2022-08-08 20:32: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
边栏推荐
猜你喜欢
【翻译】用Argo CD揭开企业规模的持续交付的秘密成分
监控工具普罗米修斯(Prometheus)的介绍与安装
音视频技术开发周刊 | 257
新库上线 | CnOpenData信息传输、软件和信息技术服务业工商注册企业基本信息数据
Experience Sharing | A low-cost and fast-paced approach to building an enterprise knowledge management system
Notes: The difference between laravel, updateOrCreate and updateOrInsert
书法家唐效奇
VSCode 必知必会的 20 个快捷键
劳务派遣业务流程图
JMeter测试接口并发场景
随机推荐
Ansible自动化运维工具(二)playbook剧本
Bluu海鲜公司推出首批实验室培育的鱼类产品
Some useful frameworks in Kotlin
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
WPF主窗体调用 User32的SetWindowPos 设置窗体置顶会导致与其他窗体抢夺焦点的问题
DCT变换
如何用WebSocket打造Web端IM即时通讯聊天
leveldb-impl:level0
使用fontforge修改字体,只保留数字
接口测试经典面试题:Session、cookie、token有什么区别?
莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave:2021年第四季度企业服务管理报告》
PyTorch入门(六):模型的训练套路
制作实例分割数据集
1259 Alice and Bob
Kotlin学习笔记
什么是仿射函数?
编写CMakeLists生成静态库及可执行文件的make文件
小白如何购买基金产品?
门外汉掌握数据分析处理技术的路线图
CSP-J2021 题解