python 二分法_二分法查找的递归实现(python)
时间: 2023-07-03 08:12:41 浏览: 120
好的,下面是二分法查找的递归实现(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 = [ 2, 3, 4, 10, 40 ]
x = 10
# 函数调用
result = binary_search(arr, 0, len(arr)-1, x)
if result != -1:
print("元素在数组中的索引为", str(result))
else:
print("元素不在数组中")
```
在这个函数中,我们首先判断数组是否为空。如果不为空,我们找到数组的中间元素。如果中间元素与要查找的元素相等,我们就返回中间元素的索引。如果中间元素大于要查找的元素,我们就递归地查找左半部分的元素。如果中间元素小于要查找的元素,我们就递归地查找右半部分的元素。如果要查找的元素不存在于数组中,我们就返回 -1。
希望这能够帮到你!
阅读全文