1、递归树 递归树的概念 递归树是迭代计算的 模型 . 2 递归树的生成过程与迭代过程一致 . 对递归树上的项求和就是迭代后方程的解 . 递归树上所有项恰好是迭代之后产生和式中的项 . 迭代在递归树中的表示 如果递归树上某结点标记为 W(m) W(m) = W(m1)+.+W(mt) + f(m)+.+g(m), m1, . , mt m 其中 W(m1),.,W(mt)称为函数项 . W(m) . W(m1) W(m2) W(m3) . W(mt) 每个叶结点是一个函数项 f(m)+.+g(m) 结点总值相等 3 二层子树的例子 W(n/2) W(n/2) n-1 二分归并排序 W(n) = 2
2、W(n/2) + n-1 4 递归树的生成规则 初始,递归树只有根结点 , 其值为 W(n) 5 继续递归树的生成,直到树中无函数项 (只有初值 )为止 . 不断继续下述过程: 将函数项叶结点的迭代式 W(m)表示成二层子树 用该子树替换该叶结点 递归树生成实例 W(n) n-1 W(n/2) W(n/2) W(n) = 2W(n/2) + n-1 初始 第一步迭代 6 递归树生成实例 n/2-1 n-1 n/2-1 W(n/4) W(n/4) W(n/4) W(n/4) n-1 W(n/2) W(n/2) 第二步迭代 7 递归树 1-2111111114141414142121211knnnnnnnnnnn8 0 ( 1),2 , 1 ) /2 (2 )(WnnnWnW k1l o g )1(22. . .21)( 1-nnnknnnnnWkk对递归树上的量求和 9 递归树应用实例 求解方程: T(n)=T(n/3)+T(2n/3)+n )(1 9492929323nOnnnnnnnnnn10 求和 方程: T(n)=T(n/3)+T(2n/3)+n 递归树层数 k,每层 O(n) n(2/3)k =1 (3/2)k = n k = O(log3/2n) T(n)=O(nlogn) 11 递归树是迭代的图形表述 递归树的生成规则 如何利用递归树求解递推方程 ? 小结 12