后续复发的价值是什么。
T(n) = T(n/4) + T(n/2) + cn2
T(1) = c
T(0) = 0
其中c是一个正常数
(A) O(n 3 )
(B) O(n 2 )
(C) O(n 2登录)
(D) O(nLogn)答案: (B)
说明:以下是给定递归关系的初始递归树。
cn^2
/ \
T(n/4) T(n/2)
如果我们进一步分解表达式T(n / 4)和T(n / 2),则会得到递归树。
cn^2
/ \
c (n^2)/16 c(n^2)/4
/ \ / \
T(n/16) T(n/8) T(n/8) T(n/4)
进一步细分可为我们提供以下服务
cn^2
/ \
c(n^2)/16 c(n^2)/4
/ \ / \
c(n^2)/256 c(n^2)/64 c(n^2)/64 c(n^2)/16
/ \ / \ / \ / \
要知道T(n)的值,我们需要逐级计算树节点的总和。如果我们逐层汇总以上树,则得到以下序列
T(n)= c(n ^ 2 + 5(n ^ 2)/ 16 + 25(n ^ 2)/ 256)+…。
上面的系列是比率为5/16的几何级数
为了获得一个上限,我们可以将以上系列求和为无限项。我们得到的总和为(n ^ 2)/(1 – 5/16),即O(n ^ 2)
有关更多详细信息,请参阅以下视频讲座。
http://www.youtube.com/watch?v=whjt_N9uYFI这个问题的测验