算法导论 4.4-2

来源:互联网 发布:淘宝优品乐购 编辑:程序博客网 时间:2024/06/01 08:08

1 题目

证明:若f(n)=Θ(nlogb a lgk n),其中k>=0,则主定理递归式的解为T(n)=Θ(nlogb a lgk+1 n)。为简单起见,可以只对b的整数幂分析。

2 分析与解答

证明:对于n为b的整数幂,主定理的递归式的解为:

T(n)=Θ(nlogb a) + ∑j=0logb n -1 aj f(n/bj )

将f(n)=Θ(nlogb a lgk n)带入上式中,得:

T(n)=Θ(nlogb a) + ∑j=0 logb n -1 aj Θ((n/bj)logb a lgk (n/bj ))

令g(n)=∑j=0 logb n -1 aj Θ((n/bj )logb a lgk (n/bj))=Θ(nlogb a * ∑j=0logb n - 1 lgk (n/bj ))

其中

j=0 logb n - 1 lgk (n/bj )

=∑j=0logb n - 1 (lgn - jlgb)k

=∑j=0logb n - 1 (lgn/lgb - j)k lgk b

=∑j=0logb n - 1 (logb n - j)k lgk b

=lgk b(1k + 2k + … + logb k n)

=lgk b∑j=1logb n jk

jk 为单调递增函数,根据书中的公式A. 11

0 logb n xk dx <= ∑j=1logb n jk <= ∫1logb n+1 xk dx

1/(k+1)* logk+1 b n = Θ(logk+1 b n ) <= ∑j=1logb n jk <= 1/(k+1)*(logb n + 1)k+1 - 1/(k+1) = Θ(logk+1b n )

所以∑j=0 logb n - 1 lgk (n/bj ) = Θ(logk+1b n) =Θ(lgk+1 n)

所以,g(n)=Θ(nlogb a lgk+1 n),

所以T(n)=Θ(nlogb a) + Θ(nlogb algk+1 n)=Θ(nlogb algk+1 n)