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

📅  最后修改于: 2021-06-28 20:08:58             🧑  作者: Mango

后续复发的价值是什么。

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