A34183. 统计高分问题小张在学习对分查找后,想利用该思路来实践一下,加深对该算法的理解。于是他按老师的要求,统计期末考试成绩,总分比他高的同学有多少个?他的思路是,首先将全区所有学生的成绩降序排序,然后利用对分查找思想解决。他编写的代码如下,请完善划线处的代码。cj =[654,643,621,612,609,606,...]#学生成绩存列表cj并已经降序排序def dfsearch(key): i =0…
填空题
较难
知识点
题目描述
统计高分问题
小张在学习对分查找后,想利用该思路来实践一下,加深对该算法的理解。于是他按老师的要求,统计期末考试成绩,总分比他高的同学有多少个?
他的思路是,首先将全区所有学生的成绩降序排序,然后利用对分查找思想解决。他编写的代码如下,请完善划线处的代码。
cj =[654,643,621,612,609,606,...]#学生成绩存列表cj并已经降序排序
def dfsearch(key):
i =0; j=len(cj)-1
while i<=j:
m =(i+j)//2
if cj[m]>key:
_______① _______
else:
j-= 1
return _______② _______
key = int(input('输入待查找的成绩'))
pos = _______③ _______
print('高于',key,'分的人数有',pos)
参考答案
cj =[654, 643, 621, 612, 609, 606, . . . ]#学生成绩存列表 cj 并已经降序排序
def dfsearch(key) :
i =0; j=len(cj) -1
while i<=j:
m =(i+j) //2
if cj[m]>key:
i +=1
else:
j-= 1
return i
key = int(input(' 输入待查找的成绩' ) )
pos = dfsearch(key)
print(' 高于' , key, ' 分的人数有' , pos)
上一题
下一题