递归树推导

设总层数为t 所以bnt=1 (n规模大的问题,每次分为原问题的1/b ,t次分成1)
t=logbn
总代价

假定a是b(b>1)的幂
主定理的三种情况分别对应这个式子的的三种情况
1.树的总代价由叶结点的代价决定,
2.树的总代价均匀分布在树的所有层次上
3.树的总代价由根结点的代价决定
case1:
若对某个常数ε>0有f(n)=O(nlogba−ε)则g(n)=O(nlogba)可转换为
存在f(n)=O(nc) ,其中 c<logba
T(n)=i=0∑taiO((bin)c)
=O(i=0∑tai(bin)c)
=O(nci=0∑t(bca)i)
求和项为等比数列
=O(nc(bca)t)
btcnc=1
=O(at)
at=alogbn=alogablogan=alogan∗logba
=O(nlogba)
得证
case2:
若f(n)=Θ(nlogba)则g(n)=Θ(nlogba)
假设f(n)=Θ(nlogba) 所以f(bin)=Θ((bin)logba)
T(n)=Θ(i=0∑tai(bin)logba)
=Θ(nlogbai=0∑t(aa)i)
=Θ(nlogbai=0∑t1)
=Θ(nlogbalogbn)
=Θ(nlogbalgn)
case3:
若对某个常数c<1和所有足够大的n有af(bn)≤cf(n)则T(n)=Θ(f(n))
T(n)=i=0∑taif(bin)≤i=0∑tcif(n)≤f(n)i=0∑∞ci
注意:c<1且求和部分为等比数列,求和再取极限
=f(n)(1−c1)+O(1)=O(f(n))
在上篇的矩阵乘法中,
分治法得到的复杂度T(n)=8T(2n)+O(n²)
则a=8,b=2 满足第一种情况 复杂度为O(nlog28)=O(n3)
Strassen方法中 复杂度T(n)=7T(2n)+O(n²)
a=7, b = 2 也满足第一种情况,复杂度为O(nlog27)