Unverified Commit d5b4737a authored by 雷蒻's avatar 雷蒻 Committed by GitHub
Browse files

Merge pull request #1859 from ouuan/cc-basic

重写计算理论基础 & 增加小 o 符号和小 ω 符号
parents 5ceccf3d 8e4e03b0
Loading
Loading
Loading
Loading
+301 −51

File changed.

Preview size limit exceeded, changes collapsed.

+21 −7
Original line number Diff line number Diff line
@@ -8,19 +8,33 @@ author: linehk

我们通常使用渐进符号来描述一个算法的复杂度。

###  $\Theta$ 符号
### 大 Θ 符号

对于给定的一个函数 $g(n)$ , $f(n)\in\Theta(g(n))$ ,当且仅当 $\exists c_1,c_2,n_0\in\mathbb R^+$ ,使得 $\forall n \ge n_0, 0\le c_1g(n)\le f(n) \le c_2 g(n)$ 。
对于给定的一个函数 $g(n)$ , $f(n)=\Theta(g(n))$ ,当且仅当 $\exists c_1,c_2,n_0>0$ ,使得 $\forall n \ge n_0, 0\le c_1\cdot g(n)\le f(n) \le c_2\cdot g(n)$ 。

也就是说,如果函数 $f(n)$ 属于 $\Theta(g(n))$ ,那么我们能找到两个正数 $c_1, c_2$ 使得 $f(n)$ 被 $c_1g(n)$ 和 $c_2g(n)$ 夹在中间。因为 $\Theta(g(n))$ 是一个函数集合,我们可以用 $f(n) \in \Theta(g(n))$ 表达 $f(n)$ 属于 $\Theta(g(n))$ ,但是我们通常使用 $f(n) = \Theta(g(n))$ 。
也就是说,如果函数 $f(n)=\Theta(g(n))$ ,那么我们能找到两个正数 $c_1, c_2$ 使得 $f(n)$ 被 $c_1\cdot g(n)$ 和 $c_2\cdot g(n)$ 夹在中间。

###  $O$ 符号
### 大 O 符号

 $\Theta$ 符号同时给了我们一个函数的上下界,如果我们只有一个函数的渐进上界的时候,我们使用 $O$ 符号。对于一个给定的函数 $g(n)$ , 我们把它记作 $O(g(n))$ 。 $f(n)\in O(g(n))$ ,当且仅当 $\exists c,n_0$ ,使得 $\forall n \ge n_0,0\le f(n)\le cg(n)$ 。
 $\Theta$ 符号同时给了我们一个函数的上下界,如果我们只有一个函数的渐进上界的时候,我们使用 $O$ 符号。对于一个给定的函数 $g(n)$ , 我们把它记作 $O(g(n))$ 。 $f(n)=O(g(n))$ ,当且仅当 $\exists c,n_0$ ,使得 $\forall n \ge n_0,0\le f(n)\le c\cdot g(n)$ 。

###  $\Omega$ 符号
研究时间复杂度时通常会使用 $O$ 符号,因为我们关注的通常是程序用时的上界,而不关心其用时的下界。

同样的,我们使用 $\Omega$ 符号来描述一个函数的渐进下界。 $f(n)\in \Omega(g(n))$ ,当且仅当 $\exists c,n_0$ ,使得 $\forall n \ge n_0,0\le cg(n)\le f(n)$ 。
### 大 Ω 符号

同样的,我们使用 $\Omega$ 符号来描述一个函数的渐进下界。 $f(n)=\Omega(g(n))$ ,当且仅当 $\exists c,n_0$ ,使得 $\forall n \ge n_0,0\le c\cdot g(n)\le f(n)$ 。

### 小 o 符号

如果说 $O$ 符号相当于小于等于号,那么 $o$ 符号就相当于小于号。

 $f(n)=o(g(n))$ ,当且仅当对于任意给定的正数 $c$ , $\exists n_0$ ,使得 $\forall n \ge n_0,0\le f(n)< c\cdot g(n)$ 。

### 小 ω 符号

如果说 $\Omega$ 符号相当于大于等于号,那么 $\omega$ 符号就相当于大于号。

 $f(n)=\omega(g(n))$ ,当且仅当对于任意给定的正数 $c$ , $\exists n_0$ ,使得 $\forall n \ge n_0,0\le c\cdot g(n)< f(n)$ 。

![](images/order.png)