2003年度系统设计师(高级程序员)上午试题解析-数据结构篇(2)

类别:软件工程 点击:0 评论:0 推荐:

5. 将两个长度为 n 的递增有序表归并成一个长度为 2n 的递增有序表,最少需要进行关键字比较____次。

A. 1      B. n-1   C. n       D. 2n

答案:C

解析:考生首先要明白两个前提:一是要归并的两个表都是递增有序的且长度都为n,二是题目问的是最少的关键字比较次数,即最好的情况下的比较次数。而最好的情况应该是:一个表的所有关键字都大于(或小于)另一个表的所有关键字,如:(1 2 3 4)与(5 6 7 8)。比较的时候有两个指针分别指向两个表的第一个元素,由于一个表的关键字要都大于另一个表的关键字,所以关键字小的表中的元素挨个与关键字大的表的第一个元素比较后,先被并入到新表中,这时关键字大的表的指针还是指向第一个元素没变,此时只需将关键字大的表复制到新表中即可。所以花费的比较次数就是关键字小的表长,也就是n。

 6.已知AOE网中顶点v1~v7分别表示7个事件,弧al~a10分别表示10个活动,弧上的数值表示每个活动花费的时间,如下图所示。那么,该网的关键路径的长度为__(1)__,活动a6的松驰时间(活动的最迟开始时间-活动的最早开始时间)为__(2)__。

(1) A. 7     B. 9       C. 10     D. 11

(2) A. 3        B. 2    C. 1       D. 0

答案:(1)C (2)A

解析:(1)关键路径就是从起点到终点最长的路径。直接从图中找即可,v1 v4 v5 v7就是一条,长度为10。(2)从关键路径中可以看出,v1到v4需要花费的时间为6,活动a6至少要在经过时间2后才能开始,最晚开始时间为:6-2=4 ,则活动a6的松驰时间是4-2=2。

 7.对n个元素进行快速排序时,最坏情况下的时间复杂度为____。

A.O(1og2n)       B.O(n)       C.O(nlog2n)     D. O (n2)

答案:D

解析:若进行快速排序的n个元素按关键字有序或基本有序时,快速排序将退化为起泡排序,时间复杂度为O (n2)。

复习提示:这是一道概念题,也是考生的拿分题,考生对概念一定要清楚。

 8.任何一个基于“比较”的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为____。

A.10   B.11   C.21    D.36

答案:A

解析:内部排序中除了基数排序之外,都是基于“关键字间的比较”进行排序的。任何一个借助“比较”进行排序的算法,在最坏情况下所需的比较次数至少为é1og2(n!)ù,由此可解。具体解释考生可参考严蔚敏、吴伟民的《数据结构》291页。 

9.若G是—个具有36条边的非连通无向图(不含自回路和多重边),则图G至少有___个顶点。

A. 11      B. 10       C. 9   D. 8

答案:B

解析:因为G为非连通图,所以G中至少含有两个连通子图,由于题目问至少有几个顶点,而且该图不含自回路和多重边,所以一个连通图可看成是一个点构成,另一个连通图可看成是一个完全图(因为完全图在最少顶点的情况下能得到的边数最多),这样该问题转化为这个36条边的完全图有多少个顶点,由公式可知:36=n×(n-1)/2,则n=9,加上另一个连通图(只有一个点),则图G至少有10个顶点.

 

本文地址:http://com.8s8s.com/it/it37170.htm