【问题描述】完善Binary_search(lt)函数,实现二分查找功能。
【输入形式】输入待查找数列,和需要查找的数据。
【函数返回值】查找到返回True,未找到返回False.
【样例输入】
[4,6,7,9,45,78,87]
45
【样例输出】
找到该数
def Binary_search(lt):
low = 0
high = len(lt) - 1
flag = False
while high-low>=1 and flag == False: # 使用m指向l和h的中间位置
m = (high + low) // 2
if lt[m] == x:
flag = True
elif lt[m] < x:
low = m + 1
else:
high = m
return flag
lt = eval(input())
x = eval(input())
if Binary_search(lt) == True:
print('找到该数')
else:
print('未找到该数')
该代码定义了一个Binary_search函数,用于在已排序的列表中进行二分查找。输入是待查找的列表和目标值,返回值为是否找到目标。在循环中,函数通过比较中间元素与目标值来调整搜索范围,直到找到目标或搜索范围为空。样例展示了一个查找45在给定列表中的情况,输出为找到该数。
522

被折叠的 条评论
为什么被折叠?



