Recursive tree是神马

Recursive tree是神马


关键字: 非平面(non-planar),


递归树的孩子是非平面的, 意味着某个节点的孩子之间是没有顺序的. 如下所示, 这两个树是等价的.

       1          1   
      / \   =    / \           
     /   \      /   \
    2     3    3     2

递归树的元素个数:

以下摘自参考资料2

递归算法时间复杂度的计算方程式一个递归方程:

    

  

递归树的规则为:

  (1) 每层的节点为T(n) = kT(n / m) + f(n)中的f(n)在当前的n/m下的值;

  (2) 每个节点的分支数为k;

  (3)每层的右侧标出当前层中所有节点的和。

 

  例子:

  T(n) = T(n/3) + T(2n/3) + n

  其递归树如下图所示:

  Recursive tree是神马_第1张图片

  可见每层的值都为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)为其他情况时可用递归树进行分析。

  

  由第二种情况知,若采用分治法对原算法进行改进,则着重点是采用新的计算方法缩小a值。  


另外, MIT的算法导论的第一堂课,就阐述了关于递归树在进行算法分析时的作用, 值得大家学习及参考.


参考资料:

http://en.wikipedia.org/wiki/Recursive_tree

http://www.cnblogs.com/wu8685/archive/2010/12/21/1912347.html


你可能感兴趣的:(Recursive tree是神马)