二分法在有序列表中查找
类型:程序题

题目说明

随机生成的10个在[1,100)范围内整数存入列表;输入一个待查找的整数k,运用二分法在列表中查找k,根据查找状态输出对应的结果,请将程序补充完整。

运行结果1:

运行结果2:

from random import randint
def b(s,v):
    top=0
    last=len(s)
    while  ①_
        mid=(top+last)//2
        if v==s[mid]:
            return mid
        elif v>s[mid]:
             ②_
        elif v<s[mid]:
            last=mid-1
    return None
s=[randint(1,100) for i in range(10)]
s.sort()
print(s)
k=int(input())
ans=b(s,k)
if  ③_
    print('找到,下标是:',ans)
else:
    print('没有找到这个数!')
[13, 25, 27, 41, 52, 66, 67, 69, 72, 75]
72
找到,下标是: 8
[9, 15, 16, 19, 27, 31, 43, 64, 84, 93]
20
没有找到这个数!

评分标准

①top<=last:或等效答案;(2分) ②top=mid+1或等效答案;(3分) ③ans!=None: 或等效答案;(3分)

代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?