数据结构

什么是算法的渐近时间复杂度?如何分析一个算法的渐近时间复杂度?

题目

什么是算法的渐近时间复杂度?如何分析一个算法的渐近时间复杂度?

参考答案和解析
正确答案:算法的渐近时间复杂度是对算法的时间效率的度量。也就是对一个算法执行所需要的时间进行分析。一个算法执行所需要的具体时间与所使用的计算机系统的软、硬件性能及问题的规模等因素有关。为了比较算法本身的时间性能,应该采用能够反映算法本身的时间性能的度量。实际上,通常算法运行所需要的时间T是问题规模n的函数,可记为T(n)。所谓算法的渐近时间复杂度,是当问题规模充分大时,算法运行时间的增长趋势的度量。因为增长率的上限对算法的比较更具意义,所以经常分析的是算法运行时间的增长率的上限,这就是算法的时间复杂度的大O表示,也常简称为算法的时间复杂度。
为了分析一个算法的时间复杂度,一般情况下需要考察算法中基本语句的执行次数,找出其与问题规模n的函数关系f(n),从而得到算法的渐近时间复杂度。所谓基本语句是执行次数与算法的执行次数成正比的语句,它是算法中的关键操作。算法的基本语句大多包含在循环和递归结构中,对于单循环结构,循环体中的简单语句就是基本语句,其执行次数的大O表示就是该算法段的渐近时间复杂度;对于并列的循环结构,要先分析各个循环结构的渐近时间复杂度,然后利用大O表示法的加法规则求出算法的时间复杂度;对于多层嵌套的循环结构,最内层循环中的简单语句就是算法的基本语句,要自外向内逐层分析各层循环的渐近时间复杂度,再利用大O表示法的乘法规则来求出算法的渐近时间复杂度。对于递归结构,则可以根据递归过程递推出基本语句的执行次数,进而得到它的大O表示。总之,只要分析求出算法中关键操作的执行次数与问题规模的函数关系,也就得到了该次数的大O表示,从而也就求出了算法的渐近时间复杂度。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列叙述中正确的是()

A.算法的复杂度是指算法所处理的数据量

B.算法的复杂度是指算法程序中指令的数量

C.算法的复杂度是指算法控制结构的复杂程度

D.算法的复杂度包括时间复杂度与空间复杂度


正确答案:D

第2题:

2013年全国计算机等级考试《二级VF》考前预测试卷(十四)第四题怎么解答?

下列关于算法复杂度描述正确的是(  )。  

A. 算法的时间复杂度是指算法执行的时间 

B. 算法的空间复杂度是指执行这个算法所需的内存空间

C. 一个算法的空间复杂度大,则其时间复杂度必定大 

D. 一个算法的空间复杂度大,则其时间复杂度必定小 


正确答案:C
答案解析:[解析]算法的时间复杂度是指执行算法所需要的计算工作量,也就是算法在执行过程中所执行的基本运算的次数,而不是指程序运行需要的时间或是程序的长度。

 

第3题:

下列叙述中正确的是( )

A.一个算法的空间复杂度大,则其时间复杂度也必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.以上三种说法都不对


正确答案:D
 一个算法的好坏-般用时间复杂度和空间复杂度这两个指标来衡量。-般一个算法的时间复杂度和空间复杂度越小,这个算法就越好。若某算法用时最少、占用空间最小,我们就称此算法为最佳算法。比如二分(折半)查找算法在数学上就可以证明是最佳查找算法。一个算法的时间复杂度和空间复杂度之间没有必然的联系,也就是说一个算法的时间复杂度小,它的空间复杂度不-定也小,反之依然。因此本题的正确答案是D。

第4题:

一个算法的评价主要从空间复杂度和()来考虑。

A、时间复杂度

B、算法有效性

C、算法有穷性

D、算法可读性


参考答案:A

第5题:

下列叙述中正确的是()

A.一个算法的空间复杂度打,则其时间复杂度也必定大

B.一个算法的空间复杂度大,则其时间复杂度也必定小

C.一个算法的时间复杂度大,则其空间复杂度也必定小

D.算法的时间复杂度与空间复杂度没有直接相关


正确答案:D

第6题:

● 某算法的时间复杂度表达式为 T(n)=an2+bnlgn+cn+d,其中,n为问题的规模,a、b、c和d为常数,用O表示其渐近时间复杂度为 (63)。

(63)A. O(n2) B. O (n) C. O (n1gn) D. O (1)


正确答案:A
解析:时间复杂度是度量算法执行的时问长短。根据表达式T(n)=an2+bnlgn+cn+d可知当n无限大时,T(n)=an2,故时间复杂度为O(n2)

 

第7题:

某算法的时间复杂度表达式为T(n)=an2+bnlgn+cn+d,其中,n为问题的规模,a、b、c和d为常数,用O表示其渐近时间复杂度为( )。

A.(n2)

B.O(n)

C.O(nlgn)

D.O(1)


正确答案:A
解析:时间复杂度是度量算法执行的时问长短。根据表达式T(n)=an2+bnlgn+cn+d可知当n无限大时,T(n)=an2,故时间复杂度为O(n2)

第8题:

下列叙述中正确的 ______。

A.一个算法的空间复杂度大,则其时间复杂度也必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.上述三种说法都不对


正确答案:D
解析:算法的复杂度主要包括时间复杂度和空间复杂度:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度;算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数,为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。

第9题:

算法的时间复杂度用什么计量?


参考答案:算法复杂性用算法的基本运算步骤计量,运算步骤与算法要解的问题的规模、算法的输入有关。

第10题:

下列叙述中正确的是( )。

A.一个算法的空间复杂度大,则其时间复杂度必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.上述三种说法都不对


正确答案:D
解析:算法的时间复杂度和算法的空间复杂度从不同的角度来衡量算法的执行情况,它们之间没有内在联系。

更多相关问题