如果一个算法的时间复杂度可表示成下面的公式,试计算其复杂度. (2)T(n)=T(」n/2」)+T(「n/2「)+1;

电灯剑客
科技发烧友

2012-09-11 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1.2万
采纳率:83%
帮助的人:4757万
展开全部
先考虑简化的情形
T(2n)=2T(n)+1 => T(2n)+1 = 2(T(n)+1)
这样当n=2^k时就转化到等比数列

T(2^k)+1=C*2^k,即T(n)=Cn-1,C是一个正常数
然后用归纳法证明不仅是2的幂,对一般的n上述结论也成立
如果只需要大O记号的话T(n)=O(n)

当然,对于很多算法复杂度分析,没必要如此细致,对n=2^k讨论完之后只要再证明T(n)单调也就足够了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式