主定理证明(master theorem proof)

2个回答

  • 由问题有

    T(1)=d

    T(n)=aT(n/b)+cn,且有n=b^a

    这个递推式描述了大小为n的原问题分成若干个大小为n/b的子问题,其中a个子问题需要求解,而cn是合并各个子问题的解需要的工作量.下面使用扩展递推技术对通用分治递推式进行推导

    T(n)=aT(n/b)+cn

    =a(aT(n/b^2)+c*n/b)+cn

    …………………………

    =a^aT(n/b^a)+a^(a-1)*c*n/b^(a-1)+...+a*c*n/b+cn

    =c∑(i从0到a)[a^(a-i)]*n/b^(a-i)(因为n=b^a)

    =c∑(i从0到a)[a^(a-i)]*b^i

    =c*a^a∑(i从0到a)[(b/a)^i]

    这个求和是个几何级数,其值依赖与比率b/a,注意到a^a=a^(logbn)=n^(logba),则有下3种情况:

    (1)a>b:∑(i从0到a)[(b/a)^i]