测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A26007. 碳中和行动2025年,全球碳中和行动进入关键阶段。某环保机构收集了多个绿色能源项目的效率数据(单位:%),需通过算法对项目效率进行排序,优先推广高效项目。要求:实现选择排序算法,按效率值(第二列)对项目列表进行降序排序,输出排序后的项目名称和效率值。已知数据如下:projects = [ ["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2], ["地…

填空题 中等

题目描述

碳中和行动

2025年,全球碳中和行动进入关键阶段。某环保机构收集了多个绿色能源项目的效率数据(单位:%),需通过算法对项目效率进行排序,优先推广高效项目。

要求:实现选择排序算法,按效率值(第二列)对项目列表进行降序排序,输出排序后的项目名称和效率值。

已知数据如下:

projects = [  
   ["风电-青海", 82.5],  ["光伏-宁夏", 78.3],   ["氢能-广东", 91.2],  
   ["地热-西藏", 65.7],   ["潮汐-浙江", 88.4]  
]
结果输出示例:
第1名:氢能-广东(效率91.2%)  
第2名:潮汐-浙江(效率88.4%)  
...  
请补全下列代码中的①②③④⑤⑥四处。
projects = [  
   ["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2],  
   ["地热-西藏", 65.7], ["潮汐-浙江", 88.4]  
]  
# 选择排序(降序)  
for i in range(len(projects)):  
   k =   _____①_____        
   for j in range(i + 1, len(projects)):  
       if  projects[j][1] > projects[k][1]:  # 比较效率值              k = _____②_____       
   # 交换位置  
   projects[i], projects[k] = _____③_____ , _____④_____        
# 输出结果  
for idx, project in enumerate(projects):  
   print(f"第{_____⑤_____ }名:{project[0]}(效率{_____⑥_____}%)")

参考答案

projects = [ ["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2], ["地热-西藏", 65.7], ["潮汐-浙江", 88.4] ] # 选择排序(降序) for i in range(len(projects)): k = i for j in range(i + 1, len(projects)): if projects[j][1] > projects[k][1]: k = j projects[i], projects[k] = projects[k], projects[i] # 输出结果 for idx, project in enumerate(projects): print(f"第{idx+1}名:{project[0]}(效率{project[1]}%)") 说明: ① i ② j ③ ④ projects[k], projects[i] 解析:将当前最大值交换到未排序部分的起始位置。 ⑤idx+1 解析:第一个索引号为0。 ⑥project[1] 解析:按格式输出项目名称和效率值

答案解析

评分标准:

(1)i(或等效答案);(2分)

(2)j(或等效答案);(4分)

(3)projects[k](或等效答案);(2分)

(4)projects[i](或等效答案);(2分)

(5)idx+1(或等效答案);(3分)

(6)project[1](或等效答案)。(3分)


上一题 下一题