二分查找
类型:程序题

题目说明

小明在学习二分查找后,编写程序实现查找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 = ',')
代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?