请用python代码回答:用递归来实现二分法查找要求;要求输入数字,找到所需要的元素,输出要查找的元素xx存在,如未找到,输出要查找的元素xx不存在,
时间: 2024-01-10 08:03:57 浏览: 84
python二分查找算法的递归实现方法
5星 · 资源好评率100%
好的,以下是一个输入数字,使用递归实现二分查找,并输出查找结果的Python代码:
```python
def binary_search_recursive(arr, target, low, high):
"""
使用递归实现二分查找
:param arr: 有序列表
:param target: 要查找的目标
:param low: 当前查找范围的左侧索引
:param high: 当前查找范围的右侧索引
:return: 目标在列表中的索引,没找到返回-1
"""
if low > high:
return -1
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
return binary_search_recursive(arr, target, low, mid - 1)
else:
return binary_search_recursive(arr, target, mid + 1, high)
if __name__ == '__main__':
# 示例列表
lst = [1, 3, 4, 6, 8, 10, 11, 12, 14, 15, 18, 19, 20]
# 要查找的元素
target = int(input("请输入要查找的元素:"))
# 查找目标在列表中的索引
index = binary_search_recursive(lst, target, 0, len(lst) - 1)
# 判断查找结果并输出
if index == -1:
print(f"要查找的元素{target}不存在")
else:
print(f"要查找的元素{target}存在,索引为{index}")
```
这个程序首先定义了一个`binary_search_recursive`函数,和上一个问题的代码类似。然后在主函数中,读取用户输入的要查找的元素`target`,调用`binary_search_recursive`函数查找目标在列表中的索引。最后根据查找结果输出相应的信息,如果索引为-1则说明要查找的元素不存在,否则输出要查找的元素存在并输出其索引。
阅读全文