主定理(Master Theorem)推导和理解(2)

主定理的证明,见主定理(Master Theorem)推导和理解(1)_Happy_Traveller的博客-CSDN博客,看几个实际case。

Case 1:求解递推方程:

T(n) = 9T(n/3) + n,T(n)的计算复杂度

依据主定理,a=1, b=3, f(n) = n,那么

n^{log_{3}^{9}} = n^{2}, Obviously, f(n) = O(n^{log_{3}^{9} - 1}) (\varepsilon = 1) \\ |\quad So,T(n) = O(n^{2})

Case 2 : 求解递推方程:

T(n) = T(2n/3) + 1, T(n)的计算复杂度

 依据主定理,a=1, b=2/3, f(n) = 1,那么

a = 1, b=3/2, f(n) = 1, Obviously, f(n) = \Theta (n^{log_{3/2}^{1}}) = \Theta (n^{0}) = \Theta (1) \\ | \quad So, T(n) = \Theta (logn)

Case 3 : 求解递推方程:

T(n) = 3T(n/4) + nlogn, T(n)的计算复杂度

依据主定理,a=3, b=4, f(n) = nlogn ,那么

nlogn = \Omega (n^{log_{4}^{3} + \varepsilon}) = \Omega (n^{0.793 + \varepsilon}), So, 0 < \varepsilon < 0.207 \\ |\quad Meanwile, af(n/b)\leq cf(n), \frac{3n}{4}log\frac{n}{4} \leq cnlogn, So, c \geq \frac{3}{4} \\ |\quad So, T(n) = \Theta (f(n)) = \Theta (nlogn)

Case 4 : 求解递推方程:

T(n) = 2T(n/2) + nlogn,T(n)的计算复杂度

依据主定理,a=2, b=2, f(n) = nlogn,那么

log_{b}^{a} = n^{log_{2}^{2}} = n, f(n)=nlogn, can't \enspace find \enspace \varepsilon, make\enspace nlogn = \Omega (n^{1+\varepsilon})

所以case 4不能使用主定理

同时,直观上看,递推方程中,将原问题拆成b个子问题,同时需要a个这样的子问题,同时需要f(n)的操作合并这些子问题,所以,如果b越大,a越小,同时f(n)步骤越少,总体的计算就越少,就是越是好的算法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值