T(n) = 4T(n / 2) + n^2 / log n

问题来源:麻省理工-算法导论第二集第60min的例题 bilibili.com/video/BV1K

问题:

已知 T(n) = 4T(n/2) + n^2/\log n ,证明 T(n)=\Theta(n^2\log\log n) (主定理不可行)

证明:

递归展开得

\begin{align} T(n) & =4T(n/2)+n^2/\log n\\ &=4(4T(n/2^2) + (n/2)^2/\log(n/2))+n^2/\log n\\ &\dots\\ &=4^kT(n/2^k) + \sum_{i=0}^{k-1}\frac{4^i(\frac{n}{2^i})^2}{\log \frac{n}{2^i}}\\ &=n^2T(1) + n^2\sum_{i=1}^{\log n} \frac{1}{i} \end{align}

而由 Euler 常数 \gamma = \lim_{n\to \infty} (\sum_{i=1}^n \frac 1i - \ln n) = \text{const.} 可知 \sum_{i=1}^n \frac 1i =\Theta(\log n)

因此 T(n)=\Theta (n^2\log\log n)

参考:百度知道 zhidao.baidu.com/questi (强烈吐槽公式编辑。。。)

编辑于 2020-06-04 11:32