跳转至

算法分析

空间复杂度

递归空间开销较大,尽可能少用。

时间复杂度

渐近上界

如果存在常量 \(c>0\)\(n_0>0\),使得对 \(\forall n\ge n_0\),都有 \(T(n)\le c·f(n)\),则称 \(f(n)\) 是运行时间 \(T(n)\) 的渐近上界,记作 \(T(n)=O(f(n))\).

渐近下界

如果存在常量 \(c>0\)\(n_0>0\),使得对 \(\forall n\ge n_0\),都有 \(T(n)\ge c·g(n)\),则称 \(g(n)\) 是运行时间 \(T(n)\) 的渐近下界,记作 \(T(n)=\Omega(g(n))\).

渐近紧确界

如果存在常量 \(c_1\gt 0,\ c_2\gt 0\)\(n_0\gt 0\),使得对 \(\forall n\ge n_0\),都有 \(c_1·h(n)\le T(n)\le c_2·h(n)\),则称 \(h(n)\) 是运行时间 \(T(n)\) 的渐近紧确界,记作 \(T(n)=\Theta(h(n))\).

对任意 \(T(n)\)\(f(n)\),我们有 \(T(n)=\Theta(f(n))\),当且仅当 \(T(n)=O(f(n))\)\(T(n)=\Omega(f(n))\).

当时间复杂度为 \(O(n^2)\),考虑是否可以优化到 \(O(n\lg n)\).