二分查找

vf981383 程序题 共 个子题

题目说明

小明在学习二分查找后,编写程序实现查找key所遍历的过程。如有原始数据是 12, 18, 27, 31, 46, 68, 75, 80, 90, 92,待查找的数据是90,打印输出key所遍历数分别是:

46,80,90。他编写的程序如下,完善划线处的代码。

def dfsearch(data,key): #二分法在data中查找key
    p = [] #存放key所遍历数
    flag = False
    i,j = 0,len(data) - 1
    while i <= j:
        m = (i+j)//2
        p.append(data[m])
        if         ①        :
            flag = True
            return p,flag
        elif data[m] > key:
            j =         ②
        else:
            i =         ③
    return p,flag
data = [12,18,27,31,46,68,75,80,90,92]
key = int(input())
rst,flag =         ④
if flag:
    print('原始数据是',data,'待查找的数据是',key,'\n找到,查找的数分别是:')
    for i in rst:
        print(i,end = ',')
else:
    print('原始数据是',data,'待查找的数据是',key,'\n没有找到,查找的数分别是:')
    for i in rst:
        print(i,end = ',')

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧