使用二分查找,在一组有序元素中查找数据项(要求:形参是数组,实参是数组名)。 输入(input): 输入两行,第1行是数据集合,数据之间用逗号分隔;第2行是待查找数据输出(output): 输出查找是
时间: 2024-09-28 19:17:11 浏览: 23
2021-2022计算机二级等级考试试题及答案No.10157.docx
二分查找,也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。其基本思想是每次将查找区间缩小一半,直到找到目标值或者确定目标值不在当前区间内。以下是使用Python语言实现二分查找的一个示例,其中形参`array_name`表示传入的数组:
```python
def binary_search(array_name, target):
# 首先检查输入数组是否为空或只有一个元素
if len(array_name) <= 1:
if array_name[0] == target:
return 0 # 如果目标值是第一个元素,返回索引0
else:
return -1 # 没有找到目标值,返回-1
# 定义左右边界
low = 0
high = len(array_name) - 1
while low <= high:
mid = (low + high) // 2 # 计算中间位置的索引
# 如果中间值等于目标值,返回索引
if array_name[mid] == target:
return mid
# 如果中间值小于目标值,调整左边界
elif array_name[mid] < target:
low = mid + 1
# 否则调整右边界
else:
high = mid - 1
# 没有找到目标值,返回-1
return -1
# 示例输入
data = [1, 3, 5, 7, 9, 11]
search_data = int(input("请输入要查找的数据: "))
# 调用函数并输出结果
output_index = binary_search(data, search_data)
if output_index != -1:
print(f"找到了,数据 {search_data} 的索引是:{output_index}")
else:
print(f"未找到数据 {search_data}")
阅读全文