在有序数组中快速查找目标值或边界,时间复杂度 O(log n)

什么是二分查找

二分查找是一种在有序数组中快速定位目标的算法。每次将搜索范围缩小一半,直到找到目标或确定目标不存在。

🎯 为什么使用?

将 O(n) 的线性查找优化到 O(log n)。当数据有序或可以通过某个条件二分时(答案单调性),二分查找是最优选择。

⚙️ 如何工作?

1. 设定搜索区间 [left, right] 2. 计算中点 mid = left + (right - left) / 2 3. 比较 nums[mid] 与目标,缩小一半区间 4. 重复直到找到目标或区间为空

🎨 形象比喻

想象猜数字游戏。每次猜中间的数,根据'太大'或'太小'的反馈,排除一半的可能。100个数最多只需7次就能猜中。

🔍 识别关键词

当你在题目中看到以下关键词时,考虑使用二分查找

有序排序查找第一个最后一个旋转峰值

📊 时间空间复杂度

时间复杂度
O(log n)
空间复杂度
O(1)

每次将搜索范围缩小一半,只用常数空间

?查看快捷键