我需要找到涉及重现的算法的复杂性:
T(n) = T(n-1) + ... + T(1) + 1
T(n)
是解决大小n
问题所需的时间。
主方法不适用于此,我无法猜测使用替换方法(我不想使用替换方法)。 我留下了递归树方法。
由于每个节点的子节点数不是常数,我发现很难跟踪每个节点的贡献。什么是基本模式?
我知道我必须找到树中节点的数量,其中每个节点(k
)为其子节点编号从1到k-1
的所有节点。
是否也可以找到给出该公式的确切时间T(n)
?
答案 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)