如何解决递归复杂度T(n)= T(n / 3)+ T(2n / 3)+ cn

时间:2013-09-25 03:53:10

标签: algorithm asymptotic-complexity

当计算中值时,我们知道如果我们将输入数组分解为五个子组并递归求解,我们将得到O(n)复杂度,但如果我们将数组分解为3,它将不会返回O(n)复杂性。

有人知道如何证明吗?

2 个答案:

答案 0 :(得分:2)

它会nlg(n) 尝试绘制它的递归树:每个级别的总成本等于n,并且该树的深度为lg(n)
注意:实际上它的深度介于log(n) base 3和log(n) base 3/2之间,但由于所有基数的对数顺序都相同,我们可以将其视为lg(n)。< / p>

答案 1 :(得分:0)

看起来标题中的重复是错误的,但我认为解决重现的Master Theorem会很方便。你可以证明,从一个分母到另一个分母会让你陷入一个不同的情况,从O(n)变为更糟糕的情况。