如何解决递归T(n)= T(n-1)+ ... T(1)+1?

时间:2013-08-31 18:59:15

标签: algorithm time-complexity dynamic-programming recurrence

我需要找到涉及重现的算法的复杂性:

T(n) = T(n-1) + ... + T(1) + 1

T(n)是解决大小n问题所需的时间。

主方法不适用于此,我无法猜测使用替换方法(我不想使用替换方法)。 我留下了递归树方法。

由于每个节点的子节点数不是常数,我发现很难跟踪每个节点的贡献。什么是基本模式?

我知道我必须找到树中节点的数量,其中每个节点(k)为其子节点编号从1到k-1的所有节点。

是否也可以找到给出该公式的确切时间T(n)

1 个答案:

答案 0 :(得分:10)

T(n-1) = T(n-2) + ... + T(1) + 1

以来
T(n) = T(n-1) + T(n-2) + ... + T(1) + 1
     = T(n-1) + T(n-1)
     = 2*T(n-1)

T(1) = 1 => T(n) = 2^(n-1)