等分算法:二分查找
介绍
二分查找(Binary Search)是一种高效的搜索算法,用于在有序数组中查找特定元素的位置。它通过将目标值与数组的中间元素进行比较,从而将搜索范围缩小一半,然后重复此过程直到找到目标值或搜索范围为空。
算法原理
二分查找算法的原理很简单,它基于以下几个步骤:
- 初始化左指针
left
和右指针right
,将它们分别指向数组的第一个元素和最后一个元素。 - 计算中间元素的索引
mid
,通过将左指针和右指针相加,然后除以2得到。 - 将目标值与中间元素进行比较:
- 如果目标值等于中间元素,返回中间元素的索引。
- 如果目标值小于中间元素,将右指针更新为
mid - 1
,并重新执行步骤2。 - 如果目标值大于中间元素,将左指针更新为
mid + 1
,并重新执行步骤2。
- 重复步骤2和步骤3,直到找到目标值或搜索范围为空。
源代码实现
下面是使用Python实现的二分查找算法的示例代码:
def