二分查找Binary search

根据单调比较结果不断缩小候选区间。

核心约束
目标(若存在)始终位于当前候选区间。
适用问题
有序数组、边界定位、一致性哈希环定位。
边界与取舍
需要有序或单调条件;随机访问成本也影响效率。

时间与空间#

n 为元素数;比较操作 O(1)O(1),支持 O(1)O(1) 随机访问。

时间复杂度
最坏 O(log⁡n)O(\log n);最好 O(1)O(1)
辅助空间
迭代实现 O(1)O(1)

输入已按相同比较规则有序,或谓词满足单调性。链表上的定位移动不是 O(1)O(1),总时间可能为 O(n)O(n)。返回任一匹配、lower_bound 和 upper_bound 的边界规则不同。

工程中的应用#

3 个案例 · 附源码
基础原理参考资料

Princeton · BinarySearch有序整数数组上的迭代二分实现和对数比较界。

12 个概念