二分查找算法是一种在有序数组中查找特定元素的高效算法。它通过比较数组中间元素和目标值来工作,如果中间元素与目标值相等,则查找成功;如果目标值小于中间元素,则在数组左半部分继续查找;如果目标值大于中间元素,则在数组右半部分继续查找。这个过程重复进行,直到找到目标值或搜索范围为空。
以下是Python中实现二分查找算法的详细代码:
```python
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = left + (right - left) // 2 # 计算中间索引,防止溢出
mid_value = arr[mid]
if mid_value == target:
return mid # 找到目标值,返回索引
elif mid_value < target:
left = mid + 1 # 在右半部分继续查找
else:
right = mid - 1 # 在左半部分继续查找
return -1 # 未找到目标值,返回-1
# 示例使用二分查找
arr = [1, 3, 5, 7,