加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

求递归算法时间复杂性表达式T(n)=T(n/2)+T(n/4)+n。旧账新算。

(2013-03-16 21:31:00)
标签:

求递归算法时间复杂性

t(n)t(n/2)t(n/4)n

it

分类: 计算机语言

求递归算法时间复杂性表达式T(n)=T(n/2)+T(n/4)+n
从递归树考虑。
第一层的顶点为消耗n,下一层消耗(n/2+n/4)=3n/4.再下一层消耗(3/4)^2*n.递归树的最深叶子节点深度为log2(n).T(n)<=n+(3/4)*n+(3/4)^2*n+...(3/4)^(log2n)*n <= n+(3/4)n+(3/4)^2 *n + ...=O(4n)=O(n)
最浅的叶子节点的深度为log4(n).T(n)>=n+(3/4)*n+...+(3/4)^(log4n)*n=4n-4n^(1+log4(3/4))=W(n).所以T(n)级数为n。(夹逼法).
http://s9/mw690/5d0999524d80ad70f1828&690
9题答案为5.10题答案为C。2题看堆排序。为n/2取下整。如果对调,结果不是一个堆。因为在pushdown中,根节点的两个子树都不能保证是堆。所以,调整完成的时候也不能保证根节点是最高优先级的。3.直接一次扫描横线的个数吧。没要求求竖线(求的是横线),斜线(高度不同).




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有