26 二分查找提升练习 浙教版(2019)高中信息技术选考(学考)一轮复习(含答案)

文档属性

名称 26 二分查找提升练习 浙教版(2019)高中信息技术选考(学考)一轮复习(含答案)
格式 zip
文件大小 2.8MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-09-21 17:44:46

文档简介

数据结构大单元
——二分查找提升练习
班级 姓名
1.数组d中存储某班级50位同学的语文和数学成绩,偶数位(第0位,第2位……)存储对应该同学的语文成绩,奇数位(第1位,第3位……)存储数学成绩。该数组已经按照两科总成绩升序排序。依据二分查找思想,设计一个在数组a中查找总成绩key的程序,如果查找成功输出语文成绩在数组中的位置。
实现该功能的PYTHON程序段如下,请在划线部分填上合适的语句或表达式。
key=int(input("请输入成绩"))
i,j,flag=0,99,True
while i<=j and flag:
m=(i+j)//2
if ①m%2==1 或其他等价答案 :
m=m-1
sum=② d[m]+d[m+1]
if key==sum:
flag=False
elif ③ key>sum :
i=m+2
else:
j=m-2
if i>j:
print("没有找到!" )
else:
print("总分符合要求的语文成绩位置为:",str(m))
2.某二分查找算法的PYTHON程序段如下:
import random
a=[4,7,9,15,24,32,37,54,75,90]
key=random.randint(0,31)*3+3
s=0 ; i=0 ; j=9
while i<=j:
m=(i+j)//2
if key==a[m]:
break
if key>a[m]:
i=m+1 ; s=3*s+2
else:
j=m-1 ; s=3*s
执行该程序段后,s的值可能有________________________________________ (请写全面)
3.某二分查找算法的PYTHON程序段如下:
import random
a=[4,7,9,15,24,32,37,54,75,90]
key=random.randint(0,31)*3+3
s=0 ; i=0 ; j=9
while i<=j:
m=(i+j)//2
if key>a[m]:
i=m+1 ; s=3*s+2
else:
j=m-1 ; s=3*s
执行该程序段后,s的值可能有 (请写全面)
4.某二分查找算法的PYTHON程序段如下:
import random
d=[1,3,4,5,7,8,11,13,15,18]
key=random.randint(1,10)
if key>5:
key=key+5
i=0 ; j=9 ; n=0
while i<=j:
m=(i+j)//2
if keyj=m-1 ; n=n-1
elif key>d[m]:
i=m+1 ; n=n+1
else:
break
执行该程序段后,变量n的值可能有 (请写全面)
5.某二分查找算法的PYTHON程序段如下:
import random
d=[1,3,4,5,7,8,11,13,15,18]
key=random.randint(1,10)
if key>5:
key=key+5
i=0 ; j=9 ; n=0
while i<=j:
m=(i+j)//2
if keyj=m-1 ; n=n-1
else:
i=m+1 ; n=n+1
执行该程序段后,变量n的值可能有 (请写全面)数据结构大单元
——二分查找提升练习
班级 姓名
1.数组d中存储某班级50位同学的语文和数学成绩,偶数位(第0位,第2位……)存储对应该同学的语文成绩,奇数位(第1位,第3位……)存储数学成绩。该数组已经按照两科总成绩升序排序。依据二分查找思想,设计一个在数组d中查找总成绩key的程序,如果查找成功输出语文成绩在数组中的位置。
实现该功能的python程序段如下,请在划线部分填上合适的语句或表达式。
key=int(input("请输入成绩"))
i,j,flag=0,99,True
while i<=j and flag:
m=(i+j)//2
if ① :
m=m-1
sum=②
if key==sum:
flag=False
elif ③ :
i=m+2
else:
j=m-2
if i>j:
print("没有找到!" )
else:
print("总分符合要求的语文成绩位置为:",str(m))
2.某二分查找算法的python程序段如下:
import random
a=[4,7,9,15,24,32,37,54,75,90]
key=random.randint(0,31)*3+3
s=0 ; i=0 ; j=9
while i<=j:
m=(i+j)//2
if key==a[m]:
break
if key>a[m]:
i=m+1 ; s=3*s+2
else:
j=m-1 ; s=3*s
执行该程序段后,s的值可能有________________________________________ (请写全面)
3.某二分查找算法的python程序段如下:
import random
a=[4,7,9,15,24,32,37,54,75,90]
key=random.randint(0,31)*3+3
s=0 ; i=0 ; j=9
while i<=j:
m=(i+j)//2
if key>a[m]:
i=m+1 ; s=3*s+2
else:
j=m-1 ; s=3*s
执行该程序段后,s的值可能有 (请写全面)
4.某二分查找算法的python程序段如下:
import random
d=[1,3,4,5,7,8,11,13,15,18]
key=random.randint(1,10)
if key>5:
key=key+5
i=0 ; j=9 ; n=0
while i<=j:
m=(i+j)//2
if keyj=m-1 ; n=n-1
elif key>d[m]:
i=m+1 ; n=n+1
else:
break
执行该程序段后,变量n的值可能有 (请写全面)
5.某二分查找算法的python程序段如下:
import random
d=[1,3,4,5,7,8,11,13,15,18]
key=random.randint(1,10)
if key>5:
key=key+5
i=0 ; j=9 ; n=0
while i<=j:
m=(i+j)//2
if keyj=m-1 ; n=n-1
else:
i=m+1 ; n=n+1
执行该程序段后,变量n的值可能有 (请写全面)
同课章节目录