算法导论 4-4

1 题目

更多递归式的例子

给出下列递归式的渐近上下界,给出的界尽量紧确。

2 分析与解答

  1. T(n)=3T(n/2)+nlgn,根据主定理T(n)=Θ(nlog2 3)
  2. T(n)=5T(n/5)+n/lgn,简单画出递归树,可得

    T(n)=∑i=0log5 n -1n/lg(n/5i ) + nT(1)=n∑i=0log5 n -1(1/lg(n/5i )) + Θ(n)=(n/lg5)∑i=0log5 n -1(1/(log5 n -i)) + Θ(n)

    令log5 n - i =m,则T(n) = (n/lg5)∑m=1log5 n(1/m) + Θ(n)=(n/lg5)(lnlog5 n+O(1)) + Θ(n) = Θ(nlglgn) + O(n) + Θ(n)=Θ(nlglgn)+Θ(n) = Θ(nlglgn),证明略

  3. T(n)=4T(n/2)+n2 n1/2=Θ(n5/2)
  4. T(n)=3T(n/3 + 5)+n/2,用替换法,猜测此式与T(n)=3T(n/3)+n/2的解相同,所以 T(n)=Θ(nlgn),因为T(n)>3T(n)+n/2,所以渐近下界是一定的;对于渐近上界,利 用传递性,假设T(n)=O((n-5)lg(n-5)),易证成立,所以T(n)=O(nlgn)
  5. T(n)=2T(n/2)+n/lgn=Θ(nlglgn)
  6. T(n)=T(n/2)+T(n/4)+T(n/8)+n,简单画出递归树,可得,

    对于渐近下界
    T(n) >= ∑i=0log8 n -1(7/8)in + 3log8 nT(1)>n,所以T(n)=Ω(n)
    对于渐近上界
    T(n) <= ∑i=0lgn -1(7/8)in + 2T(1)<= ∑i=0\infinity(7/8)in + 2T(1)= 8n + Θ(1),所以T(n)=O(n})
    所以T(n)=Θ(n)

  7. T(n)=T(n-1)+1/n,画出递归树,可得

    T(n)=∑i=0n-11/(n-i)+T(1)=∑j=1n1/j=lnn+O(1)+Θ(1)=Θ(lgn)

  8. T(n)=T(n-1)+lgn,画出递归树,可得

    T(n)=∑i=0n-1lg(n-i) + T(1)=lg(n*(n-1)*…*2*1)+Θ(1)<=lg(n*n*…*n*n)+Θ(1)=nlgn+Θ(1),所以T(n)=O(nlgn)
    同时,T(n)>=lg(n/2*n/2*…*n/2*(n/2-1)*…*2*1)+Θ(1)>=lg(n/2)n/2+Θ(1)=n/2*lgn-n/2+Θ(1)>=n/2*lgn,所以T(n)=Ω(nlgn),所以T(n)=Θ(nlgn)

  9. T(n)=T(n-2)+2lgn,画出递归树,可得

    T(n)=∑i=0n/2-12lg(n-2i) + Θ(1)=2lg(n*(n-2)*..*4*2)+Θ(1)=Θ(nlgn)

  10. T(n)=n1/2T(n1/2) + n,T(n)/n=T(n1/2)/n1/2+1,令S(n)=T(n)/n,得S(n)=S(n1/2)+1,根据4-1(h)得S(n)=Θ(lglgn),T(n)=nS(n),T(n)=Θ(nlglgn)


你可能感兴趣的:(算法)