在有序数组中快速查找目标值或边界,时间复杂度 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)
每次将搜索范围缩小一半,只用常数空间
按?查看快捷键