求递归算法时间复杂性表达式T(n)=T(n/2)+T(n/4)+n。旧账新算。
标签:
求递归算法时间复杂性t(n)t(n/2)t(n/4)nit |
分类: 计算机语言 |
求递归算法时间复杂性表达式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.直接一次扫描横线的个数吧。没要求求竖线(求的是横线),斜线(高度不同).
http://s9/mw690/5d0999524d80ad70f1828&690
9题答案为5.10题答案为C。2题看堆排序。为n/2取下整。如果对调,结果不是一个堆。因为在pushdown中,根节点的两个子树都不能保证是堆。所以,调整完成的时候也不能保证根节点是最高优先级的。3.直接一次扫描横线的个数吧。没要求求竖线(求的是横线),斜线(高度不同).
前一篇:C style in Unix

加载中…