我想绘制T(n)= 3T(n / 2)+ n的递归树并将猜测推导到上限

时间:2015-11-10 19:05:03

标签: recursion tree recurrence

我得出T(n)= O(n)。但我无法通过替代方法证明这一点。请证明答案

1 个答案:

答案 0 :(得分:0)

我不会为你证明这一点,因为我认为这可能是一个家庭作业问题而且我有道德担心为你做功课。但是,我很乐意让您了解为什么您无法证明T(n)= 3T(n / 2)+ n。

让我们考虑一下递归树。在顶层,我们有一个大小为n的节点。在它下面,我们有三个大小为n / 2的节点,每个节点都有n / 2个工作。总结那一行,我们看到完成的工作是3n / 2.这三个节点中的每一个都生成三个大​​小为n / 4的新节点。这意味着在下一层有9个节点,每个节点都进行n / 4工作,所以在该层完成的总工作量为9n / 4。

如果你遵循这里的模式,你会注意到在第k层完成的工作是(3/2) k n。随着k增加,这种情况会增加,所以完成的工作实际上不会是O(n)。

使用此观察和迭代方法。会有多少层?基于此,运行时将是什么?