Recursion T(n)=c1T(n/a)和#x2B;c2(T/b)和#x2B;f(n)

Recursion T(n)=c1T(n/a)和#x2B;c2(T/b)和#x2B;f(n),recursion,iteration,time-complexity,master-theorem,Recursion,Iteration,Time Complexity,Master Theorem,例T(n)=T(n/3)+T(n/4)+3n这个问题可以用迭代主定理或递归树来解决。有人能解析地解决它来说明它是如何完成的吗 我们可以用二项式求和来展开T(n): (经过一些步骤后-可通过归纳证明) 对于某种深度的扩展/递归k 我们在哪里终止?当f(n)的所有实例的参数达到某个阈值C。因此,最大扩展深度: 我们在a,b之间选择最小值,因为只有min(a,b)幂次的参数以最慢的速率减小: 因此,T(n)的一般表达式为: 封闭形式解析解的存在取决于f(n)的形式。对于提供的示例: 内部求

例T(n)=T(n/3)+T(n/4)+3n这个问题可以用迭代主定理或递归树来解决。有人能解析地解决它来说明它是如何完成的吗

我们可以用二项式求和来展开
T(n)

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

对于某种深度的扩展/递归
k

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

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

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

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

内部求和是二项括号的展开,提升为幂
j

这是一个几何级数,等于(使用标准公式):

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


说实话,上面的例子本可以用递归树更直接地完成;但同样的情况不适用于
n
,例如
f(n)=Cn^2,可以简单地并入一般公式。

移动到可以通过二项式求和来完成,尽管分析上是否取决于
f(n)
的形式,因此如果7/12大于1,则时间复杂度将为O(nlogn)?我也试着用递归来做这件事,但每个级别的代价不是n,我似乎找不到另一个例子。@user3638488如果严格大于1,那么它将不是
n log n
,而是
n
的非整数幂。如果等于1,那么它将是
n log n
(如示例所示,2/5+3/5=1);您可以从替换到我给出的系列公式中看到-您将得到
3n*km=3n log n