选择运行时间为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登录答案: (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
这个问题的测验