python中二分查找
时间: 2023-10-24 22:15:42 浏览: 83
二分查找(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。二分查找每次将查找区间减半,直到找到目标元素或者查找区间为空。
以下是一个 Python 实现的二分查找算法:
```python
def binary_search(arr, left, right, target):
"""
arr: 有序数组
left: 查找区间左端点
right: 查找区间右端点
target: 目标元素
"""
if left > right:
# 查找区间为空,未找到目标元素
return -1
mid = left + (right - left) // 2
if arr[mid] == target:
# 找到目标元素,返回其下标
return mid
elif arr[mid] > target:
# 目标元素在左半部分,继续在左半部分查找
return binary_search(arr, left, mid - 1, target)
else:
# 目标元素在右半部分,继续在右半部分查找
return binary_search(arr, mid + 1, right, target)
```
使用示例:
```python
arr = [1, 3, 5, 7, 9]
target = 7
result = binary_search(arr, 0, len(arr) - 1, target)
print(result) # 3
```
阅读全文