递归树分析递归算法的时间复杂度
2016-09-11 12:29
302 查看
T(n) = T(n/3) + T(2n/3) + n
其递归树如下图所示:
可见每层的值都为n,从根到叶节点的最长路径是:
因为最后递归的停止是在(2/3)kn == 1.则
于是
即T(n) = O(nlogn)
总结,利用此方法解递归算法复杂度:
f(n) = af(n/b) + d(n)
1.当d(n)为常数时:
2.当d(n) = cn 时:
3.当d(n)为其他情况时可用递归树进行分析。
其递归树如下图所示:
可见每层的值都为n,从根到叶节点的最长路径是:
因为最后递归的停止是在(2/3)kn == 1.则
于是
即T(n) = O(nlogn)
总结,利用此方法解递归算法复杂度:
f(n) = af(n/b) + d(n)
1.当d(n)为常数时:
2.当d(n) = cn 时:
3.当d(n)为其他情况时可用递归树进行分析。
相关文章推荐
- vim编辑器快捷命令
- 最长公共子串(LCS)
- 使用谓词(NSPredicate)来提高集合遍历与过滤查找的效率
- metaClass和class的理解
- 使用百度地图遇到问题
- 链表相交问题
- Java进阶之路_重温《java编程思想》篇(三)
- 利用struts2框架实现当用户上传图片到服务器后,再显示到前台页面中
- HTML常用标签
- Android root + 修改host
- HTTP POST GET 本质区别详解
- SPSS——非参数检验——2 Related Independent sample两个相关样本检验
- MapReduce算法形式十一:自定义排序(即重写shuffle过程的排序规则)
- 将数据从HDFS上导入到Greenplum
- 华为OJ——Redraiment的走法
- Node.js中URL的解析
- 设计模式之外观模式
- 依据 smtp协议的简单golang 的发邮件实现
- 自定义带clean图标的EditText
- 初识jQuery 在笔记手打 可能有误