内容正文:
专题09 排序查找小题
1.【2023年1月浙江省选考真题信息技术第10题】 列表s包含8个互不相等的元素,即s[0],s[1],s[2],…,s[7],有如下Python程序段:
n = 8
for i in range(1, n-1):
for j in range(1, n-i-1):
if s[j] > s[j-1]:
s[j],s[j-1] = s[j-1],s[j]
该程序段实现的是
A.s[0]到s[5]的降序排序 B.s[1]到s[6]的降序排序
C.s[1]到s[7]的升序排序 D.s[2]到s[6]的升序排序
2.【2023年2月浙江十校联盟高三信息技术第9题】某排序算法的 Python 程序段如下:
'读取 n 个整数,依次存入 a[0]到 a[n-1]中,代码略
for i in range(1,n):
for j in range(n-1,i-1,-1):
if a[j]>a[j-1]:
a[j],a[j-1]=a[j-1],a[j]
执行上述程序段,下列说法正确的是
A.交换过位置的数据,可能会再回到其初始位置
B.执行完成后,数组元素 a[0]到 a[n-1]从小到大排列
C.若 n 为 6,整个排序过程总的比较次数是30
D.整个排序过程总的交换次数至少为1
3.【2023年2月名校协作体高三信息技术第12题】
某Python程序如下:
a=[86,75,58,46,20,18,12,5]
key=int(input())
n=0;i=0;j=len(a)-1
while i<=j:
m=(i+j)//2
if key>a[m]:
j=m-1; n=n-1
else:
i=m+1; n=n+1
当输入不同的key值,运行该程序段后,n的值可能有
A.5种
B. 6种
C. 7种
D. 8种
4. 【2023年2月强基联盟高三信息技术第10题】下列代码采用冒泡排序对a列表中的n个数据升序排序,则①②两处不可用的选项是( )
for i in range( ① ):
for j in range( ② ):
if a[j] < a[j - 1] :
a[j], a[j - 1] = a[j - 1], a[j]
A. ① 1,n ② n-1,i-1,-1 B. ① n,1,-1 ② 1, i-1
C. ① 1,n ② 1,n-i+1 D. ① 0,n-1 ② n-1,i,-1
5. 【2023年3月金丽衢12校(七彩阳光)信息技术第10题】有如下Python程序段:
import random
a = [34,17,19,13,10,6,26,21]
x = (random.randint(1,4))*2
for i in range(8-x):
for j in range(7,i,-1):
if a[j]>a[j-1]:
t=a[j]; a[j]=a[j-1]; a[j-1]=t
print(a[0:4])
程序段执行后,输出的结果不可能是
A.[34,26,21,19] B.[34,26,21,17]
C.[34,26,17,19] D.[34,17,19,13]
6.【2023年3月金丽衢12校(七彩阳光)信息技术第12题】有如下Python程序段:
import random
a=[90,15,40,72,59,32,81,6]
b=[7,1,5,2,4,3,6,0]
i,j=0,len(a)-1
key=random.randint(30,60)
while i<=j:
m=(i+j)//2
if a[b[m]]==key:
p=b[m]
break
elif a[b[m]]<key:
i=m+1
else:
j=m-1
程序运行后,变量p的值不可能是
A.2 B.3 C.4 D.5
7. 【2023年3月宁波十校信息技术第8题】数组a中存储着全校学生的学号和BMI信息,格式为[['0101',19.2],['0102',18.5],['0103',20.1],...]。
其中每条数据的第一项为学号,第二项为BMI值。数组a已经按学号升序排序,现要求按照BMI值进行降序排序,BMI相同情况下仍然按照学号保持升序。则下列程序段可以实现该功能的是
A. for i in range(1,n):