跳到主要内容
uencoder

Binary Search

二分查找在有序数组中每次折半比较,O(log n) 定位目标,是高效搜索的基础算法。

用途

在有序数据中高效定位元素,将对数复杂度应用于搜索。

机制

维护 [lo, hi] 区间,mid=(lo+hi)/2,比较 mid 与目标:相等返回,小于搜右半,大于搜左半。每次区间减半,O(log n)。需有序前提。变体:下界、上界、插入位置。

用例

  • 有序数组查找
  • 数据库 B+树索引
  • 版本控制 bisect
  • 求函数零点(二分法)

示例

  • 输入
    Search 5 in [1,3,5,7,9]
    输出
    Index 2

    2 comparisons

常见错误

lo+hi integer overflow
Use lo+(hi-lo)/2

相关词条

参考链接