第1关:概述
第1题
C
拓扑排序是将有向图中所有结点排成一个线性序列,虽然也是在内存中进行的,但它不属于我们这里所提到的内部排序范畴,也不满足前面排序的定义。
第2题
A
注意,这里的绝对位置是指若在排序前元素R在位置i,则绝对位置就是i,即排序后R的位置不发生变化,显然B是不对的。C、D与题目要求无关。
第3题
B
算法的稳定性与算法优劣无关,A排除。使用链表也可以进行排序,只是有些排序算法不再适用,因为这时定位元素只能顺序逐链查找,如折半插入排序。
第2关:插入排序
任务描述
本关要求通过补全直接插入排序函数DirecInsSort,以此来实现直接插入排序的功能。
相关知识
记号说明:a[k:r]是指序列a[k] a[k+1] a[k+2] … a[r]。
为了讨论简单,假设待排序的每个记录是一个整数,这个整数就是排序码。
直接插入排序:先将第一个记录看作是一个有序的记录序列,然后从第二个记录开始,依次将未排序的记录插入到这个有序的记录序列中去,直到整个文件中的全部记录排序完毕。
举例说明:
假设待排序的序列是:46,58,15,45,90,18,下面的描述中[ ]中的序列是有序序列,[ ]后面的记录是待排序的。排序过程是:i从1到n-1执行“将a[i]插入到a[0…i