二分法
时间: 2023-07-24 19:10:41 浏览: 118
erfenfa.rar_二分法
好的,以下是使用二分法进行查找的程序代码:
```python
def binary_search(numbers, target):
left = 0
right = len(numbers) - 1
while left <= right:
mid = (left + right) // 2
if numbers[mid] == target:
return mid
elif numbers[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# 主程序
lst = list(map(int, input("请输入一批从小到大的整数,以回车结束,用空格隔开:").split()))
target = int(input("请输入要查找的数:"))
result = binary_search(lst, target)
if result == -1:
print("该数不存在于列表中!")
else:
print("该数在列表中的索引位置为:", result)
```
程序中,`binary_search` 函数接收两个参数,分别是 `numbers` 列表和 `target` 要查找的数。函数通过二分法进行查找,返回该数在列表中的索引位置,如果不存在则返回 -1。
主程序中,首先读入一批从小到大的整数,并将它们存入列表 `lst` 中;然后读入要查找的数 `target`,并调用 `binary_search` 函数进行查找;最后根据查找结果输出对应的提示信息。
阅读全文