python递归二分查找
时间: 2024-11-15 08:14:43 浏览: 8
Python递归函数 二分查找算法实现解析
Python中的递归二分查找算法,也称为折半查找或搜索排序数组,是一种高效搜索方法,适用于已经排序的列表。其基本思想是每次将目标值与数组中间元素比较,如果相等则返回索引;若目标值小于中间元素,则在数组左半部分继续查找;若大于中间元素,则在右半部分查找。这个过程会一直持续到找到目标值或者搜索范围为空。
以下是递归二分查找的Python代码示例:
```python
def binary_search(arr, low, high, target):
if high >= low:
mid = (high + low) // 2 # 计算中间索引
if arr[mid] == target: # 如果中间元素是目标值
return mid # 返回索引
elif arr[mid] > target: # 如果中间元素大于目标
return binary_search(arr, low, mid - 1, target) # 在左半部分查找
else: # 否则,在右半部分查找
return binary_search(arr, mid + 1, high, target)
else:
return -1 # 没有找到目标,返回-1
# 使用方法
arr = [2, 3, 4, 10, 40] # 排序好的数组
target = 10
result = binary_search(arr, 0, len(arr)-1, target)
if result != -1:
print("Element is present at index", str(result))
else:
print("Element is not present in array")
```
阅读全文