📜  门| GATE-CS-2009 |第35章

📅  最后修改于: 2021-07-02 15:02:25             🧑  作者: Mango

算法的运行时间由以下递归关系表示:

if  n <= 3  then   T(n) = n
    else T(n) = T(n/3) + cn

以下哪一项表示算法的时间复杂度?


(一种) \theta (n)
(B) \theta (n记录n)
(C) \theta (n ^ 2)
(D) \theta (n ^ 2log n)

(A) A
(B) B
(C) C
(D) D答案: (A)
解释:

答案(A)

T(n)= cn + T(n / 3)= cn + cn / 3 + T(n / 9)= cn + cn / 3 + cn / 9 + T(n / 27)取无穷GP级数的和。 T(n)的值将小于此总和。 T(n)<= cn(1 /(1-1 / 3))<= 3cn / 2或者我们可以说cn <= T(n)<= 3cn / 2因此T(n)= \theta (n)

这也可以使用主定理解决递归来解决。给定的表达式位于定理的情况3中。

这个问题的测验