浅谈时间复杂度

前置:

\[log^2n=log_2n \times log_2n \]

\[log n^2=log_2n+log_2n \]

\[f_1(n)+f_2(n)=O(max(f_1(n),f_2(n))) \]

\[f_1(n) \times f_2(n)=O(f_1(n) \times f_2(n)) \]

对于复杂度问题:

一般都是求 \(\Theta , O \Rightarrow upper bound , \Omega \Rightarrow lower bound\)

\[\frac{1}{2}n^2 \in \begin{cases} \Omega(n^2) \in \Omega(n) \notin \Omega(n^3)\\ O(n^2) \in O(n^3) \notin O(n) \end{cases} \]

\[\Omega(N) \Leftarrow \Theta(N) \Rightarrow O(N) \]

\[\frac{1}{2}n^2 \in \Theta(n) \notin O(n^2) \notin O(n^3) \]

其中的 \(\in\) 常用 \(=\) 表示。

化简:

(1)

$T(n)=\frac{4}{5} n^3 log n + \frac{1}{100}n^{3.2} $

\[O(n)=max(O(n^{3.2}),O(n^3logn))=O(n^{3.2}) \]

(2)

$T(n)=10^8 $

\[T(n)=O(1) \]

(3)

\(T(n)=2^{n+5}+n^5\)

\[T(n)=max(O(2^{n+5}),O(n^5))=O(2 ^n)\]

(4)

\(T(n)=2T(n-1)+1,T(1)=1\)

\[T(1)=1 \]

\[T(2)=2T(1)+1=3 \]

\[T(3)=2T(2)+1=7 \]

\[T(4)=2T(3)+1=15 \]

\[...... \]

\[T(n)=2^n-1 \]

\[\therefore T(n)=O(2^n) \]

证明:

(5)

试证明对任意实数\(a>b>1,b^n = O (a^n)\),但 \(a^n \neq O(b^n)\)

\[\exists n_0,C>0 s.t. \forall n>n_0, f(n) \leq Cg(n)\]

那么有:

\[f(n) = O(g(n)) \]

\[\forall n_0,C \exists n>n_0 \]

则有:

\[a^n \leq Cb^n \]

\[(\frac {a}{b})^n \leq C \]

\[n \leq log_{\frac {a}{b}} C \]

\[n > log_{\frac{a}{b}} C \]

\[n>n_0 \]

\[\because (\frac{a}{b})^n > (\frac{a}{b})^{log_{\frac{a}{b}}C} > C \]

\[\therefore a^n > Cb^n \]

矛盾,故有:

\[a^n \neq O(b^n) \]

证明完毕。

(6)

试证明 \(log(n!) = \Theta (nlogn)\)

posted @ 2025-07-16 10:31  β-Ceti  阅读(5)  评论(0)    收藏  举报