二分搜索:高效的查找方法
二分搜索是一种高效的搜索算法,特别适用于有序数组。它通过不断将搜索范围折半,迅速缩小查找范围,从而找到目标元素。让我们通过一个实际的例子来看看它是如何工作的。
假设你有一个已经按升序排列的数字数组,你需要查找一个特定的数字,比如75。数组如下:
[10, 20, 30, 40, 50, 60, 70, 75, 80, 90, 100]
步骤1:初始化
- 定义左边界
left
为数组的第一个元素索引,即0。 - 定义右边界
right
为数组的最后一个元素索引,即10。
步骤2:计算中间位置
计算中间位置的索引mid
:
mid = ⌊ left + right 2 ⌋ \text{mid} = \left\lfloor \frac{\text{left} + \text{right}}{2} \right\rfloor mid=⌊2left+right⌋
mid = ⌊ 0 + 10 2 ⌋ = 5 \text{mid} = \left\lfloor \frac{0 + 10}{2} \right\rfloor = 5 mid=⌊