深耕专业教研,探索前沿技术
信息技术来源:2026年4月嘉兴市高三教学测试

第 11 题

答案与解析

本题解析

参考答案

D

解题思路

程序通过两层循环反复比较、交换相邻元素a[j]和a[j+1],采用冒泡排序。本题的排序要求是加急件在前;同类型包裹按重量从大到小排列。

程序分析

n=len(a)
for i in range(n-1):
    for j in range(①):
        if a[j][1] < a[j+1][1] and a[j][2]==a[j+1][2]:
            a[j],a[j+1]=a[j+1],a[j]
        elif ②:
            a[j],a[j+1]=a[j+1],a[j]

每个包裹记录的下标1对应重量,下标2对应类型。if在两个包裹类型相同、左侧较轻时交换二者,使较重的包裹向前移动。if不成立时,elif仍以交换这两个相邻包裹作为操作。

填空分析

①

比较对象为a[j]、a[j+1],内层循环从左向右扫描待排序区间。按题意补全交换条件后,每轮会把该区间中优先级最低的包裹移至末端。第i轮开始时,末尾已有i个包裹就位,最后一对需要比较的下标是n-i-2和n-i-1。因此j取0至n-i-2,填写n-i-1。

②

同类型的重量次序已由if处理。类型不同时,只有左侧为普通件、右侧为加急件才需要交换。两个条件应同时成立,故填写a[j][2]=="普" and a[j+1][2]=="急"。