Skip to content
2026-09-29 04:20223 字算法搜索

二分查找 ​

在有序数组中通过折半缩小区间定位目标元素,时间复杂度 。

基本实现 ​

  • 双闭区间 [left, right]:while left <= right,right = mid - 1
  • 左闭右开 [left, right):while left < right,right = mid
  • 中间位置:mid = left + (right - left) // 2(防 (left+right) 溢出)

变体 ​

场景查找目标核心调整
查找左边界第一个 ≥ target 的位置找到 target 后收紧 right
查找右边界最后一个 ≤ target 的位置找到 target 后收紧 left
查找插入点target 应插入的位置等价于查找左边界

前提条件 ​

  1. 数据必须有序
  2. 支持随机访问(数组可用,链表不适用)
  3. 适用于静态或低频更新的数据集

每一篇文章,都是时间的标本