二进制搜索法(Binary Search)是一种高效的查找算法,适用于 有序数组,通过分而治之的策略快速定位目标元素。以下是关键要点:
通过反复将搜索范围对半划分,每次比较中间元素与目标值,根据比较结果缩小搜索区间,从而将时间复杂度从线性搜索的O(n)降低到O(log n)。
核心步骤
- 初始化边界: 设定左边界`low`为0,右边界`high`为数组长度减1。 - 计算中间位置
- 比较与递归/迭代:
- 若中间元素等于目标值,返回索引;
- 若目标值小于中间元素,在左半部分继续搜索;
- 若目标值大于中间元素,在右半部分继续搜索。
需要数据 预先排序
,否则无法正确工作。应用场景
适用于 大规模数据集的快速查找,例如数据库索引、字典查找等。
示例
以查找字典中第30个词为例,通过不断将搜索范围减半,最终定位目标位置。
总结:
二进制搜索通过高效的分区策略,显著提升查找效率,是计算机科学中基础且重要的算法之一。