信息技术来源:2025学年第二学期天域全国名校协作体高三4月联考
第 11 题
答案与解析
本题解析
参考答案
B
解题思路
程序每轮暂存一个元素k,将右侧已排好序的元素依次移动,再把k插入空出的位置,属于插入排序。这里从右向左扩大有序区,比较的关键字是元素除以5的余数。
程序分析
n=len(a)
for i in range(n-2,-1,-1):
k=a[i]
j=i+1
while j<=n-1 and a[j]%5>k%5:
a[j-1]=a[j]
j+=1
a[j-1]=ki从n-2递减到0,最初右侧有序区只有末尾一个元素。每轮用k暂存a[i],并从右侧有序区的第一个位置i+1开始查找插入位置。
当a[j]%5>k%5时,将a[j]左移到a[j-1],再令j增加1。这样,余数比k大的元素被依次放到k前面,空位随之向右移动。遇到余数不大于k的元素,或j越过数组末尾时,循环结束,把k放入a[j-1]。
本轮结束后,a[i]至a[n-1]按余数从大到小排列;随着i向左推进,有序区逐步扩大到整个列表。余数相等时不移动,因此相等关键字的元素保持原有相对次序。
选项分析
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_04_G3_tianyuxiezuoti_q011
