《算法导论》学习笔记——求解时间复杂度

本文介绍了求解递归算法时间复杂度的三种方法:代入法、递归树法和主方法。通过实例详细解释了每种方法的应用过程。

求解时间复杂度
主要有三种方法:代入法、递归树法、主方法

代入法
根据解的形式进行猜测,然后证明。
例子:
T(n)=2T(n/2)+Θ(n)
猜测T(n)=Ο(nlgn)
T(n)=2T(n/2)+Θ(n)<2c(n/2)lg(n/2)+dn=cnlgn-cnlg2+dn
证明完毕,只要我们选择合适的c与合适的d使得dn-cnlg2<0即可。

递归树求解法
画出递归树,并计算递归树的高度以及每一层递归树中的代价,再相加。
例子:
T(n)=2T(n/2)+Θ(n)
这里写图片描述
n变成1一共经历了log2n层。每一层的代价总和是cn,所以是nlgn。

主方法求解
形如T(n)=aT(n/b)+f(n)的递归式一般可以使用主方法进行求解。
首先计算logba=k,计算nk
将nk与f(n)进行比较。较大的决定了递归式的解。
若f(n)较大,则T(n)=Θ(f(n))
若nk较大,则T(n)=Θ(nk)
若相同,则T(n)=Θ(f(n)lgn)
这里的较大较小指的是多项式意义上的大小。
f(x)多项式大于g(x):
存在实数e>0,使得f(x)>g(x)*n^e
f(x)多项式小于g(x):
存在实数e>0,使得f(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值