杂论 - 复杂度相关
大声朗读并熟练背诵
\[\large
\begin{array}
AA\alpha\ B\beta \ \Gamma\gamma\ \Delta \delta\ E\epsilon\ Z\zeta\ H\eta\ \Theta\theta\ I\iota\ K\kappa\
\Lambda\lambda \ M\ \mu\ N\nu\ \Xi\xi\ O\omicron\ \Pi\pi\ P\rho \ \Sigma \sigma\varsigma\ T\tau\ \
\Upsilon\upsilon\ \Phi\phi\varphi \ X\chi\ \Psi\psi \ \Omega\omega
\end{array}
\]
复杂度表示
-
大 Theta \(\Theta\) 符号:上下界夹逼
- 称 \(f(n)=\Theta(g(n))\),当且仅当存在 \(l,r,n'\ \color{red}{>0}\) 使得任意 \(n>n'\) 都有 \(l\cdot g(n)\le f(n)\le r\cdot g(n)\)。
-
大 Omicron \(O\) 符号:非严格上界
- 称 \(f(n)=O(g(n))\),当且仅当存在 \(r,n'\ \color{red}{>0}\) 使得任意 \(n>n'\) 都有 \(f(n)\le r\cdot g(n)\)。
-
大 Omega \(\Omega\) 符号:非严格下界
- 称 \(f(n)=\Omega(g(n))\),当且仅当存在 \(l,n'\ \color{red}{>0}\) 使得任意 \(n>n'\) 都有 \(l\cdot g(n)\le f(n)\)。
-
小 omicron \(\omicron\) 符号:严格上界
- 称 \(f(n)=\omicron(g(n))\),当且仅当存在 \(r,n'\ \color{red}{>0}\) 使得任意 \(n>n'\) 都有 \(f(n)< r\cdot g(n)\)。
-
小 omega \(\omega\) 符号:严格下界
- 称 \(f(n)=\omega(g(n))\),当且仅当存在 \(l,n'\ \color{red}{>0}\) 使得任意 \(n>n'\) 都有 \(l\cdot g(n)< f(n)\)。
-
注意,\(f(n)\) 是我们要研究的函数,\(O(g(n))\) 是对 \(f\) 的估计
复杂度分析
性质
- \(f(n)=\Theta(g(n))\) 当且仅当 \(f(n)=O(g(n))\) 且 \(f(n)=\Omega(g(n))\)
- \(f_1(n)+f_2(n)=\Theta(\max(f_1(n),f_2(n)))\)
- \(f_1(n)f_2(n)=\Theta(f_1(n)f_2(n))\)
- \(\forall a\ne 1,\log_a n=\Theta(\log_2 n)\)。由换底公式可以得知,对数函数无论底数如何,都具有相同的增长率,因此渐进时间复杂度中对数的底数一般省略不写。
分析
P=NP?
P 问题和 NP 问题
P 问题:能在多项式时间内解决。
NP 问题:不能在多项式时间内解决但可在多项式时间内验证。
A 能多项式规约为 B:问题 A 的所有实例都能够在多项式的时间复杂度内转化为问题 B 的所有实例。
规约后如果问题依然是 NP 问题,我们就把它称作 NP-complete 问题;如果不是,称它为 NP-hard 问题。