什么是双重排序呢?排序的方法有很多种:冒泡、选择……排序的次序也有顺序和逆序。通过下面的例子我们一起来了解双重排序吧。
考完试后,老师将全班同学的姓名和分数录入了Excel表,接下来对所有成绩进行升序或降序排列。当选中分数一列进行排序时Excel会弹出一个提示窗口,提示选定区域旁边还有数据,是否需要“扩展选定区域”。如果不选中旁边序列的话等同于只是将分数排序了,姓名没有参加排序(姓名和原分数将会混淆),如果选择扩展选定区域的话,姓名自动跟随着分数一起排序,这就称为双重排序(图1、图2)。
两种排序的结果,一种是只按照分数进行排序,另外一种是姓名跟随着分数进行排序,这是我们需要的排序结果。今天我们用VB来制作一个双重排序的小项目。
在学校的排球比赛上,每个班级按照积分制进行排序比赛,点击添加按钮录入班级名称和积分,点击排序按钮班级名随着积分从低到高进行升序排列(排序的方法可以使用冒泡或选择排序)。
首先创建两个组合框(Combol),当班级和积分都输入内容后,将组合框中的列表填充内容,否则不输入任何内容,由于双重排序需要调用两个列表的内容,所以我们先要对班级和积分列表进行循环遍历,将班级定义成a[i],将积分定义成b[i];由于是按照分数进行排序,班级名跟随着积分排序,可以先按照分数进行冒泡排序,在排序的一行中添加对应班级名,班级名跟随在积分排序后面,这样的话当积分排序完成后,班级名的顺序也就排好了。
双重排序的难度不算大,但是需要注意排序时的顺序问题,否则的话排序就会混乱。趕紧去试试看,看看能不能成功,再想想怎么在排序之后计算平均分(图3)。