二分查找
小明在学习二分查找后,编写程序实现查找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 = ',')