Loading docs/misc/cc-basic.md +301 −51 File changed.Preview size limit exceeded, changes collapsed. Show changes docs/misc/complexity.md +21 −7 Original line number Diff line number Diff line Loading @@ -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)$ 。  Loading Loading
docs/misc/cc-basic.md +301 −51 File changed.Preview size limit exceeded, changes collapsed. Show changes
docs/misc/complexity.md +21 −7 Original line number Diff line number Diff line Loading @@ -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)$ 。  Loading