引言:从猜数字到算法优化
大家好!今天我们来聊聊算法中一个既经典又实用的技巧——二分查找。这个看似简单的思想,却能解决许多复杂问题。让我们从一个熟悉的游戏开始,逐步深入理解它的精髓。
一、什么是二分查找?
1.1 直观理解:猜数字游戏
回想一下小时候玩过的猜数字游戏:
老师心里想一个1-100之间的数字
我们需要用最少的次数猜中它
聪明策略:每次都猜当前范围的中间值
第一次:猜50----老师:"大了"
第二次:猜25---- 老师:"大了"
第三次:猜13 ----老师:"大了"
...
最终:猜中数字1
这种方法就是二分查找的核心思想:不断将搜索范围对半分割。
1.2 形式化定义
二分查找是一种在有序数组中快速查找目标值的算法。其基本思想是:
-
确定搜索区间 [left, right]
-
每次取中间位置
mid = (left + right) / 2 -
根据比较结果,舍弃一半区间
-
重复直到找到目标或区间为空
二、二分查找的时间复杂度分析
二分查找的高效性源于其指数级的缩小速度:
| 查找次数 | 剩余元素数量 |
|---|---|
| 第0次 | n |
| 第1次 | n/2 |
| 第2次 | n/4 |

309

被折叠的 条评论
为什么被折叠?



