嘘~ 正在从服务器偷取页面 . . .

渐进记号总结 & 《算法导论》 3.1


渐进记号总结 & 《算法导论》 3.1

用来描述算法渐进运行时间的记号根据定义域为自然数集 $\mathbb{N}$ 的函数来定义。

这样的记号对描述最坏情况运行时间的函数 $T(n)$ 是方便的。

紧渐进界记号 $\Theta$

断句:紧 渐进 界 记号

upd. 还是叫 紧确渐进界记号 $\Theta$ 比较好..

例子 $f(n) = 3n^2-n+5 = \Theta(n^2)$

定理1:对于任意两个函数 $f(n)$ 和 $g(n)$ ,我们有 $f(n)=\Theta(g(n))$ ,当且仅当 $f(n)=O(g(n)) \land f(n) = \Omega(g(n))$

或者等价的表示为: $\Theta(f(n)) = O(n) \cap \Omega(n)$

证明:显然。$O,\Omega$ 记号的定义详见下文。


渐进上界记号 $O$

一般也写做 $\mathcal{O}$ 。

例子:$f(n) = 2n^2 + 3n + 1 =O(n^2),~f(n) = 2n = O(n^2)$ 。


渐进下界记号 $\Omega$

例子:$f(n) = 2n+3 = \Omega(n),~f(n) = n^3 + 1 = \Omega(n)$ 。


非渐进紧确上界记号 $o$

断句:非渐进紧确 上界 记号

也叫 非紧上界记号 $o$ 。

注意区分大小写。

这等价于

例子: $f(n) = n \log_2 n = o(n^2)$

但是 $f(n) = n^2 -n \ne o(n^2)$ 。因为 $n^2 - n = O(n^2)$ 是渐进紧确的。


非渐进紧确下界记号 $\omega$

断句:非渐进紧确 下界 记号

也叫 非紧下界记号 $\omega$ 。

注意这是 omega ,不是 w

这等价于

例子:$f(n) = n^{\frac{5}{4}} = \omega(n)$

但是 $f(n) = n^4 +1 \ne \omega (n^4)$ ,因为 $n^4 = \Omega (n^4)$ 是渐进紧确的。


渐进记号的性质与比较

记号 含义 通俗理解
$\Theta$ 紧渐进界 $=$
$O$ 渐进上界 $\le$
$o$ 非紧上界 $<$
$\Omega$ 渐进下界 $\ge$
$\omega$ 非紧下界 $>$

传递性

自反性

对称性

转置对称性

  • 若 $f(n) =o(g(n))$ ,则称 $f(n)$ 渐进小于 $g(n)$

  • 若 $f(n) = \omega(g(n))$ ,则称 $f(n)$ 渐进大于 $g(n)$

无三分性

指实数的三分性不适用于渐进记号。

实数的三分性:对于任意两个实数 $a,b$ ,下列三种情况必有一种必须成立。

虽然任意两个实数可以进行比较,但是不是所有函数都可以渐进比较。

也就是说,对于两个函数 $f(n)$ 和 $g(n)$

也许 $f(n)=O(g(n))$ 或 $f(n) = \Omega(g(n))$ 都不成立。

书上的例子:

因为 $-1 \le \sin x \le 1$

所以 $g(n)$ 中的幂值在 $0$ 到 $2$ 之间摆动,取介于两者之间的所有值。


参考文献

[1] https://blog.csdn.net/qq_44575910/article/details/119253189

[2] https://blog.csdn.net/so_geili/article/details/53353593


文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录