算法设计与分析-主定理原理

主定理知识

主定理是用于解决形如 T(n)=aT(n/b)+f(n)的递归方程的一种方法,其中 a≥1 和 b>1 是常数,f(n)是渐近函数。主定理可以帮助我们快速确定递归算法的时间复杂度。

1.1主定理公式

对于递归关系式 T(n)=aT(nb)+f(n)T(n)=aT(bn​)+f(n),其中 a≥1a≥1 和 b>1b>1 是常数,f(n)f(n) 是一个渐近正函数,主定理分为三种情况:

计算步骤如下所示:

示例1: T(n)=9T(n3)+nT(n)=9T(3n​)+n

参数:

a=9a=9

b=3b=3

f(n)=nf(n)=n

  1. 计算n^logb^a :nlog3^9=n^2

  1. 比较f(n)和n^logb^a

f(n)=n=O(n^(2−ϵ),取 ϵ=1。))

(3)应用主定理的第一种情况:

T(n)=Θ(n^2)

示例2: T(n)=T(2n/3)+1

参数:

a=1a=1

b=3/2​

f(n)=1

(1)计算 n^log b^a:

n^log3/2^1=n^0=1

(2)比较 f(n) 和 nlogb^a:得

f(n)=1=Θ(1)

(3)应用主定理的第二种情况:

T(n)=Θ(logn)

示例3: T(n)=3T(n/4​)+nlogn

参数:

a=3a=3

b=4b=4

f(n)=nlogn

(1)计算 nlogb^a:

nlog4​3≈n0.793

(2)比较 f(n) 和 nlogb^a:

f(n)=nlogn=Ω(n0.793+ϵ),取ϵ=0.2ϵ=0.2。

验证正则条件 

af(n/b)≤cf(n),即 3(n/4​logn/4​)≤cnlogn,显然只要 c≥3/4​即可。

(3)应用主定理的第三种情况:

T(n)=Θ(nlogn)

注意事项:

如果 f(n)不符合上述三种情况中的任何一种,例如f(n)=nlogn 而 a=b=2a=b=2,那么主定理不适用,需要使用其他方法求解递归方程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值