首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何求解递归复杂度T(n) = T(n/3)+T(2n/3)+cn

如何求解递归复杂度T(n) = T(n/3)+T(2n/3)+cn
EN

Stack Overflow用户
提问于 2013-09-25 03:53:09
回答 2查看 2.7K关注 0票数 1

当计算中值时,我们知道,如果将输入数组分解为五个子组并递归求解,我们就会得到O(n)复杂度,但如果将数组分解为3,则不会返回O(n)复杂度。

有人知道怎么证明吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-25 06:50:50

会是nlg(n)

尝试绘制它的递归树:每个级别的总成本等于n,该树的深度为lg(n)

注:实际上它的深度介于log(n)基3和log(n)基3/2之间,但由于所有基的对数顺序相同,我们可以把它看作是lg(n)

票数 2
EN

Stack Overflow用户

发布于 2013-09-25 06:37:27

看起来标题中的递归是错误的,但是我认为用于解决递归的主定理会很方便。您可以看到,从一个分母转到另一个分母会使您进入一个不同的情况,从O(n)到更糟的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18995911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档