组卷题库 > 高中信息技术试卷库
试题详情
小明编写了一个 VB 程序对成绩数据进行排序。为保证相同分数的同学相对位置(指原数据中的前后关系)不发生改变,他试着采用一种新的排序算法来解决。为便于描述算法的实现过程,假定有如下数组 a:

下标

1

2

3

4

5

5

3

3

2

4

第一步:统计数组 a 中每个值 a(i)出现的次数,存入 b(a(i)),统计完成后数组 b 的情况如下:

下标

1

2

3

4

5

0

1

2

1

1

第二步:从前向后,依次使数组 b 中的每个值等于其与前一项之和,这样数组 b(a(i))就代表了数组 a 中小于或等于 a(i)的元素个数,完成第二步后数组 b 如下:

下标

1

2

3

4

5

0

1

3

4

5

第三步:从后往前,依次将数组a中元素填入数组c中,将数组元素a(i)放在数组c的第b(a(i))项,如元素a(1)=5,应该放在数组c的b(5)位(即c(5))。每放一个元素就将b(a(i))递减;完成第三步后,数组c如下所示,已经完成升序排序,且相对位置不变,即原来a(2)的值3仍然在a(3)的值3前面。

下标

1

2

3

4

5

2

3

3

4

5

程序运行界面如右图所示:

实现上述功能的VB程序如下,回答以下问题:

知识点
参考答案
采纳过本试题的试卷
教育网站链接