TedXiong

以下T(N),f(N),g(N),h(N),p(N)均表示函数,log以2为底

定义1:如果存在正常数 \(c\)\(n_0\) 使得 \(N \geqslant n_0\)\(T(N) \leqslant c\cdot f(N)\) ,则记为 \(T(N) = O(f(N))\)

定义2:如果存在正常数 \(c\)\(n_0\) 使得 \(N \geqslant n_0\)\(T(N) \geqslant c\cdot g(N)\) ,则记为 \(T(N) = \Omega(g(N))\)

定义3:当且仅当 \(T(N) = O(h(N))\)\(T(N) = Ω(h(N))\) 时,\(T(N) = θ(h(N))\)

定义4:如果对每一个正常数 \(c\) 都存在常数 \(n_0\) 使得 \(N > n_0\)\(T(N) < c\cdot p(N)\) ,则 \(T(N) = o(p(N))\) 或可以表示为 \(T(N) = O(f(N))\)\(T(N) \neq \Theta(h(N))\) ,则 \(T(N) = o(p(N))\)

这四个定义,描述的是两个函数之间增长率的关系

重要结论

1:\(T_1(N) = O(f(N))\)\(T_2(N) = O(g(N))\), 那么 \(T_1(N) + T_2(N) = O(f(N) + g(N))\) ; \(T_1(N) \times T_2(N) = O(f(N) \times g(N))\)

2:如果 \(T(N)\) 是一个 \(k\) 次多项式,则 \(T(N) = \Theta (N^k)\)

3:对任意常数 \(k\), \(log^kN = O(N)\) --\(k\) 表示 \(k\) 次方

需要注意,不要将常数和低阶项放进大O。我们总能够通过计算极限\(\lim\limits_{N\rightarrow \infty}f(N) / g(N)\) 来确定 \(f(N)\)\(g(N)\) 的相对增长率,必要时可以使用洛必达法则。该极限可能有四种值。

为 0 时,\(f(N) = o(g(N))\)。为 \(c \neq 0\) 时,\(f(N) = \Theta(g(N))\)。为 \(\infty\) 时,\(g(N) = o(f(N))\)。 极限摆动:二者无关(本书不会发生此情形)

分类:

技术点:

相关文章: