如何使用主定理来计算递归,分而治之

时间:2017-10-13 04:20:27

标签: algorithm divide-and-conquer master-theorem

我想计算Θ()

Given T (n) = T (n − 1) + n^3

我不能直接应用主定理规则,因为我不知道b是什么,所以如何推导出Θ()?

2 个答案:

答案 0 :(得分:0)

为什么你必须在这里使用Master定理?它可以像这样直接解决:

T(n)   = T(n-1) + n^3
T(n-1) = T(n-2) + (n-1)^3
T(n-2) = T(n-3) + (n-2)^3
.           .        .
.           .        .
.           .        .
T(1)   = T(0)   +   1^3
----------------------- (Add them all and cancel)

T(n) = T(0) + (n(n-1)/2)^2   (Sum of the cubes of the first n numbers)

因此它是O(n^4)

答案 1 :(得分:0)

T(n) = T(n-1) + n^3
     = T(n-2) + n^3 + (n-1)^3 
     = T(n-i+1) + (n-i)^3 + ... + (n-1)^3 + n^3
     = 1^3 + 2^3 + ... + (n/2)^3 + (n/2+1)^3 + ... + (n-1)^3
     Throw bottom half and decrease the half top to n/2
     > ((n/2)^3)*(n/2)
     Ω(n^4)

     Increase all to (n-1)
     = 1^3 + 2^3 + ... + (n/2)^3 + (n/2+1)^3 + ... + (n-1)^3 < (n-1)^3*n = O(n^4)


    T(n) = θ(n^4)