递归二分检索python
时间: 2023-06-21 09:07:00 浏览: 51
以下是递归实现二分检索的 Python 代码:
```python
def binary_search(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binary_search(arr, low, mid - 1, x)
else:
return binary_search(arr, mid + 1, high, x)
else:
return -1
```
其中,参数 `arr` 是要进行检索的有序数组,`low` 和 `high` 是数组的起始位置和结束位置,`x` 是要查找的元素。如果元素 `x` 存在于数组中,函数将返回其下标;否则,将返回 `-1`。
示例调用代码:
```python
arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search(arr, 0, len(arr) - 1, x)
if result != -1:
print(f"元素 {x} 的下标为 {result}")
else:
print("元素不在数组中")
```
输出结果为:
```
元素 10 的下标为 3
```