二分查找算法是一种高效的搜索算法,适用于有序数组。通过每次将搜索范围缩小一半,该算法能够快速定位目标元素的位置。下面我们将详细介绍二分查找算法的原理,并提供相应的源代码实现。
算法原理
二分查找算法的基本思想是通过不断将搜索范围缩小一半来逼近目标元素。具体步骤如下:
- 初始化左指针
left
和右指针right
,分别指向数组的第一个元素和最后一个元素。 - 当
left <= right
时,执行以下步骤:
a. 计算中间元素的索引mid
,使用整数除法mid = (left + right) // 2
。
b. 如果中间元素等于目标元素,则返回中间元素的索引。
c. 如果中间元素大于目标元素,则将右指针right
更新为mid - 1
,缩小搜索范围到左半部分。
d. 如果中间元素小于目标元素,则将左指针left
更新为mid + 1
,缩小搜索范围到右半部分。 - 如果循环结束仍未找到目标元素,则返回不存在的标识(例如 -1)。