二分搜索算法(Binary Search)是一种高效的搜索算法,用于在有序数组中查找目标元素。它通过反复将目标值与数组的中间元素进行比较,并根据比较结果缩小搜索范围,直到找到目标值或确定它不在数组中。
二分搜索算法步骤:
- 初始化左右指针,分别指向数组的起始和结束位置。
- 在每一步中,计算中间元素的索引,然后获取中间元素的值。
- 将目标值与中间元素的值进行比较。
- 如果目标值等于中间元素的值,则找到目标元素,返回其索引。
- 如果目标值小于中间元素的值,则在左半部分继续搜索。
- 如果目标值大于中间元素的值,则在右半部分继续搜索。
- 重复上述步骤,直到找到目标元素或左右指针相遇(表示目标元素不在数组中)。
二分搜索算法示例实现:
def binary_search(arr, target):
"""
在有序数组中进行二分搜索,并返回目标元素的索引(如果找到)。