algorithm - 如何解决递归 T(n) = T(nc) +T(c) + n^2
问题描述
我有递归函数 T(n) = T(nc) +T(c) + n²
您能解释一下在以下情况下如何计算递归树的高度:
- c有一个不确定的值
- c = n/3 => T(n) = T(n-(n/3)) +T(n/3) + n²
我认为在第一种情况下 T(n) 成本 θ(n³) 和在第二种情况下 θ(n²),对吗?
解决方案
1)如果c
是一个常数,那么你可以忽略这个T(c)
术语,它确实是θ(n³)
。
2)当它是n/3
或其他一些因素时,寻找T()
具有最大系数的项n
- 这会导致最长的分支。然后通过用这个替换所有其他项来给出时间复杂度的上限T
。
示例:T(2n/3) + T(n/3) + n² < 2T(2n/3) + n²
,从Master 定理来看,这确实是θ(n²)
。
推荐阅读
- html - 在编织 R 标记文档后,RStudio 将 html 倒置可视化
- qml - How do I delete or hide objects?
- colors - Less(1) 具有多行颜色属性
- .net - .net 4.8 到 aws“无法连接到 SMTP 服务器”
- openbsd - 是否有一种自动方法为 OpenBSD 自动安装创建 install.conf?
- python - 获取 DataFrame 中列的词汇表(unigrams)。熊猫
- javascript - 在单击事件上停止通过 jquery 多次提交表单
- c# - 在本地拥有 deplyer (IIS) 后如何测试我的机器人
- asp.net - 身份服务器 4 使用有效的访问令牌获取 401 未经授权
- android - 如何组合不同的testInstrumentationRunner