算法的运行时间由以下递推关系表示:
if n <= 3 then T(n) = n
else T(n) = T(n/3) + cn
以下哪一项代表算法的时间复杂度? <预>
(一种) (n)
(二) (n log n)
(C) (n^2)
(四) (n^2log n)
(一) A
(乙)乙
(C)丙
(四)丁答案:(一)
解释:
答案(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) = (n)
这也可以使用主定理来解决递归问题。给定的表达式位于定理的情况 3 中。
这个问题的测验