使用 Stirling 公式对 log(n!) 的时间复杂度估计
阶乘函数的一个上界是 \(n!\le n^n\),因为在阶乘中,\(n\) 项的每项最多为 \(n\)。
斯特林(Stirling)近似公式
\[n!=\sqrt{2\pi n}\left(n\over e\right)^n\left(1+\theta\left(1\over n\right)\right)
\]
对于所有 \(n\ge 1\),下面的等式成立:
\[n!=\sqrt{2\pi n}\left(n\over e\right)^ne^{\alpha _n}
\]
其中
\[{1\over 12n+1}\lt \alpha _n\lt {1\over 12n}
\]
给出了一个更紧确的上界和下界,其中 \(e\) 是自然对数的底。
\[\begin{aligned}
n!&=o(n^n) \\\\
n!&=\omega(2^n)\\\\
lg(n!)&=\Theta(nlgn)
\end{aligned}
\]

浙公网安备 33010602011771号