第7章算法程序与计算系统之灵魂练习题答案解析

(C)O(n3);

(D)上述都不对;

答案:B 解释:

本题考查时间复杂性,和大“O”记法;具体分析如下: (10) sum=0; 1次 (20) For(i=1; i<=n; i++) n次 (30) For(j=1; j<=n; j++) n2次 (40) For(k=1; k<=5; k++) 5 n2次 (50) sum=sum+1; 5 n2次

T(n)= 11n2 + n + 1 = O(n2),所以正确答案选B; 具体内容请参考课堂视频“高级问题初探: 算法分析与计算复杂性”和第七章课件;

(6)阅读下面的程序,其时间复杂度为_________?

A. O(1) B. O(n) C. O(n2) D. O(n*log n)

int index = 5; int condition=1;

if (condition==1) then index++;

else index--; for i = 1 to 100 for j = 1 to 200 index=index+2;

答案:A 解释: 本题考查时间复杂性,和大“O”记法;具体分析如下:

int index = 5; 1次 int condition=1; 1次 if (condition==1) then 1次 index++; 1次

else index--; for i = 1 to 100 100次 for j = 1 to 200 200×100次 index=index+2; 200×100次 所以T(n)=O(1),正确答案选A; 具体内容请参考课堂视频“高级问题初探: 算法分析与计算复杂性”和第七章课件;

(7)为什么要评估算法的复杂性?下列说法不正确的是_________。

(A)当算法的时间复杂性量级为多项式函数时,计算机是能够完成计算的;

(B)当算法的时间复杂性量级为非多项式函数时,如指数函数、阶乘函数时,计算机是不能够完成计算的;

(C)当算法的时间复杂性量级为非多项式函数时,如指数函数、阶乘函数时,对于大规模问题,计算机是不能够完成计算的;

(D)上述说法有不正确的;

答案:B 解释:

本题考查算法分析与计算复杂性;

当算法的时间复杂度的表示函数是一个多项式时,如O(n2)时,则计算机对于大规模问题是可以处理的。当算法的时间复杂度是用指数函数表示时,如O(2n),当n很大(如10000)时计算机是无法处理的,在计算复杂性中将这一类问题被称为难解性问题。所以对于B的表达,只有当n很大时,属于大规模问题时,计算机才不能完成,表达不精确,所以正确答案为B; 具体内容请参考课堂视频“高级问题初探: 算法分析与计算复杂性”和第七章课件;

(*8)算法的时间复杂性T(n),可以通过评估算法基本语句的执行次数来获得。分析下列算法的时间复杂性。

Start of the algorithm(算法开始)

(1) 输入结点的数目n;

(2) 当前最短路径Path设为空,当前最短距离Dtemp设为最大值;

注:一个路径是n个结点的一个组合,任何一个结点在路经中不能重复出现 (3) 组合一条新路径NewPath并计算该路径的距离D; (4) 如果D

(5) 如果所有路径组合完毕,则结束;否则转第(3)步继续执行; (6) 输出Path及Dtemp; End of the algorith

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@)