NOC创新编程复赛题——选择排序算法

2022-06-23 05:20白二娃
电脑报 2022年23期
关键词:复赛排序列表

白二娃

本题来自NOC创新编程复赛题中的第四题,这是一道算法编程题,考查的是选择排序算法。题目原文:

我国幅员辽阔,国土面积在全世界排名第三,其中各省、自治区、直辖市面积均存放于列表中,每个省级区域的面积各不相同,请把它们按照面积从小到大的顺序排列。

要求:1.當前省份与面积是一一对应的,使用选择排序算法完成面积数据排序,并保持省份与面积的对应关系。

2. 完成排序后,角色说出“我的家乡是XXX,它的面积全国排名第X”。

这道题指定了必须用选择排序算法。在编程学习中一般我们会学习8种排序算法。这几种排序的关系和特点如图。

选择排序是一种非常直观的排序算法。首先在未排序列表中找到最小(或最大)元素,存放到排序序列的起始位置。然后,再从剩余未排序元素中继续寻找最小(或最大)元素。以此类推,直到所有元素均排序完成。

比如数据[2,5,1,7,6]用选择算法从小到大排序,2和5比较,2是最小值;最小值2继续和1比较,1成为最小值;最小值1再依次和7、6比较,1都是最小值;因此2和1交换位置。第一轮结束数据为[1,5,2,7,6]。第二轮结束数据为[1,2,5,7,6],最小值2和未排序首数字5交换位置(1已经完成排序不再考虑)。最终排序结果为[1,2,5,6,7]。

题目中已经给出两个列表“面积”和“省份”,每个表格34个数据。我们循环比较面积列表中第min项(当前最小项)和第i项(m项后的某一项)的大小,并换位,最终就能将面积最小的放到第1位。

猜你喜欢
复赛排序列表
CBA复赛在不确定中寻找确定
扩列吧
抗疫、抗议,NBA复赛遇阻
恐怖排序
节日排序
一道复赛题的简证
列表法解分式方程问题探索
列表画树状图各有所长
2011年《小说月刊》转载列表
等一个晴天,我们会再相见