【整理】初赛知识

发布时间 2023-09-11 22:36:12作者: Aurora-JC

复杂度计算

①.主定理 ($T(n) = a T(\frac{n}{b}) + f(n) $ 型)

②. 分层 (\(T(n)=k\sqrt{n}T(\sqrt{n})+n\) 型)

相当于将 \(n\) 分成若干层,层数 \(c\)

最底层的大小大约为2(因为大小为1时不好计算,且2很接近1了)

\[\Large (n^{\frac{1}{2}})^c=n^{\frac{1}{2^c}}=2 \]

\[\Large log_2 \ n^{\frac{1}{2^c}}=log_2 \ 2=1 \]

\[\Large \frac{1}{2^c}log_2 \ n=1 \]

\[\Large log_2 \ n=2^c \]

\[\Large c=log_2\ log_2 \ n \]

\(k=1\) 时:

\(\Large T(n)=c \times n=n\ log_2\ log_2\ n\)

\(k=4\) 时:

\(\Large T(n)=(1+4+4^2+4^3+4^4+\dots+4^{c-1})n\)

根据等比数列求和公式得

\(\Large T(n)=(4^c-1)n/3\)

去掉常数得

\(\Large T(n)=4^c\ n\)

\[\Large 4^c=4^{log_2\ log_2\ n}=(2^{log_2\ (log_2\ n)})^2=log^2_2\ n \]

\(\Large T(n)=n\ log^2_2\ n\)