T(n)=T(n-1)+T(n-2)+T(n-3)+T(n-4) 的时间复杂度是多少。 . . . T(n-(n-1))?

时间:2021-07-01 02:41:36

标签: algorithm recursion tree time-complexity big-o

我有一个递归算法。不使用记忆,这是我的递归关系。如何计算时间复杂度?

2 个答案:

答案 0 :(得分:7)

T(2) = T(1)

T(3) = T(2) + T(1) = T(1) + T(1) = 2*T(1)

T(4) = T(3) + T(2) + T(1) = 2*T(1) + T(1) + T(1) = 4*T(1)

T(5) = T(4) + T(3) + T(2) + T(1) = 4*T(1) + 2*T(1) + T(1) + T(1) ) = 8*T(1)

...

T(n) = 2(n-2)*T(1)

答案 1 :(得分:0)

你有 T(n) = sum(T(i) i=1..n-1)

然后对于 n>1,T(n+1) - T(n) = sum(T(i) i=1..n) - sum(T(i) i=1..n-1) = T(n)

所以对于 n>2,T(n) = 2T(n-1)。所以 T(n) 是 n>2 的 2^n 的倍数。一个简单的计算表明倍数是 T(1)/4(这恰好也适用于 n=2)。