T(n)= c1T(n / a)+ c2(T / b)+ f(n)

时间:2017-07-31 20:40:59

标签: recursion iteration time-complexity master-theorem

示例T(n)= T(n / 3)+ T(n / 4)+ 3n这是可解决的迭代主定理或递归树。有人可以解析它解析它是如何完成的吗?

1 个答案:

答案 0 :(得分:1)

我们可以使用二项式求和扩展T(n)

enter image description here

(经过一些步骤 - 可以通过归纳证明

enter image description here

对于某些扩展/递归深度 k

我们在哪里终止?当f(n)所有实例的参数达到某个阈值C时。因此最大扩展深度:

enter image description here

我们选择a, b之间的最小值,因为只有min(a, b) 次幂的参数会以最慢的速率降低

enter image description here

因此T(n)的一般表达式为:

enter image description here

封闭形式解析解的存在取决于f(n)的形式。对于提供的示例:

enter image description here

内部求和是将二项式括号扩展为幂j

enter image description here

这是几何系列,等于(使用标准公式):

enter image description here

现在7/12小于1,上述结果中的幂项对于k的大值(因此n)变得消失小。因此,在大n的限制中:

enter image description here

说实话,上面的例子可以用递归树更直接地完成;但同样不适用于n的其他权力,例如f(n) = Cn^2,可以简单地纳入通式。