给出递推公式 T( n ) = a * T( n/b ) + f( n )
af( n/b )为每层代价 f(n) 为每层合并和求解的代价
1. 若给出的
f(n) = O( n * log b [ a - C ] ) 成立 =>
T( n ) = θ(n ^ log b [a] ) ( C为常数 )
ex: 此时表明树的总代价由叶节点决定(af(n/b)渐进小于C*fn)
n ^ log b [a] 为叶节点的数量
2.若给出的
f( n ) = O( n * logb [a] ) 成立 =>
T( n ) = θ( n * log b [a] * lg [n])
ex: 此时表明树的代价平均分布在每层
(n ^ log b [a] ) * lg n 这里的lg n 是渐进求解的结果
3. 若给出的
f( n ) = Ω( n ^ log b [a+C]),且对常数C<1,有足够大的n都满足
af(n/b) <= Cf(n) =>
T( n ) = θ( f(n) )
ex: 此时表明树的代价由根节点决定
每层都是 const * f(n)
网友评论