选择具有运行时间 T(n, n) 的算法的正确渐近复杂度,其中
T(x, c) = Θ(x) for c <= 2,
T(c, y) = Θ(y) for c <= 2, and
T(x, y) = Θ(x+y) + T(x/2, y/2)
(A) Θ(nLogn)
(B) Θ(n 2 )
(C) Θ(n)
(D) Θ(n 2 Logn)答案: (C)
说明:重复是
T(x, y) = Θ(x+y) + T(x/2, y/2)
可以写成如下。
T(x, y) = Θ(x+y) + Θ((x+y)/2) + Θ((x+y)/4) + Θ((x+y)/8) .....
T(x, y) = Θ((x+y) + (x+y)/2 + (x+y)/4 + (x+y)/8 ..... )
上式构成比率为2、起始元素为(x+y)/2的几何级数
由于无穷级数的总和为 2(x+y),因此 T(x, y) 的上限为 Θ(x+y)。它的下界为 (x+y)
资料来源:http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/assignments/MIT6_006F11_ps1.pdf
这个问题的测验