📜  算法|算法分析(重复)|问题6

📅  最后修改于: 2021-06-28 18:54:07             🧑  作者: 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)
解释:

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中。
这个问题的测验