繁体   English   中英

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

[英]What is the time complexity of T(n)=T(n-1)+T(n-2)+T(n-3)+T(n-4) . . . . T(n-(n-1))?

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

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)

你有 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)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM