二分法查找

该程序接收用户输入的n个升序排列的整数和一个目标值x,然后运用二分查找算法来判断x是否存在于给定的整数序列中。如果找到x,输出“找到了”,否则输出“未找到”。样例输入为5个升序整数和查找数字9,程序正确执行并返回“找到了”。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 【问题描述】请使用二分查找算法在n个升序排列的整数中,查找整数x是否存在,若存在,输出“找到了”,否则输出“未找到”。
【输入形式】使用input函数输入n、x以及n个有序整数。
【输出形式】使用print函数输出结果。
【样例输入】第一行输入n的值,第二行到第六行输入n个数据的值(注意升序输入),最后一行输入待查找数据。

5

3

8

9

10

11

9

【样例输出】找到了

n = eval(input())
lt = []
for i in range(1, n + 1):
    num = eval(input())
    lt.append(num)
# 输入待查找数据
x = eval(input())
# 使用l和h确定待查找范围
l = 0
h = len(lt) - 1
flag = False
while l <= h and flag == False:# 使用m指向l和h的中间位置

    m =(h + l)//2
    if lt[m] == x:
        flag = True
    elif lt[m]!=x:
        l = m + 1
    else:
        h = m
if flag == True:
    print('找到了')
else:
    print('未找到')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值