跳至主要內容

01-什么是二分查找

AI悦创原创2023年2月7日Python 进阶Python 进阶大约 6 分钟...约 1750 字

你好,我是悦创。

二分查找(Binary Search),是一种效率较高的查找方法。在面试或算法竞赛中,查找相关的问题最优解通常就是二分查找。特别在现场面试中尤其重要,常用二分查找来考察面试者的编码能力和算法思维。

二分查找也称为折半查找。如果一个查找问题能够用一个条件消除一半的查找区域,那么就对目标在特定空间搜索,从而减少查找空间。

边界处理!

虽然二分查找思路比较直观,但大部分面试者通常在边界处理的时候考虑不全,从而出错。

有很多原因导致二分查找处理边界失败!例如,当目标位于数组第0个索引时,或位于第 (n - 1) 个索引时,程序进入死循环。

所以课程的目标,就是通过对二分查找算法进行深入分析,总结出一套二分查找的算法模板,避免这些边界情况处理失败!

现在,跟随我们开始研究吧。

提示

二分查找的一个基本前提是列表必须是已排序的。这是因为二分查找的核心原理是基于已排序列表中间值的比较来确定下一步搜索的方向(左半部分或右半部分)。

1. 通用实现方式

1.1 算法模板

下面的代码是二分查找的一种标准实现方式:

逐一分析下上面伪代码:

2. 编码实现

下面是完整的二分查找代码:

C++

下面是算法的可视化过程,以 37 为目标数字:

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQ

方法二:微信:Jiabcdefh

通知
关于编程私教&加密文章