算法分析-渐进分析
几种基本渐进符号的解释
要注意的一点是,算法分析中的数量级\(n\)是不小于零的整数,即可取0,1,2 ……
\(O\) 上界情况
对于执行次数函数\(f(n)\),存在常量\(n_0,c\),有任意\(n > n_0\) 使得\(0 \leq f(n) \leq cg(n)\),则称\(f(n)\)在\(O(g(n))\)中。
同时由图像可以看出\(O(g(n))\)可以看作是满足上述条件的所有函数的集合
\(\Omega\) 下界情况
对于执行次数函数\(f(n)\),存在常量\(n_0,c\),有任意\(n > n_0\) 使得\(0 \leq cg(n) \leq f(n)\),则称\(f(n)\)在\(\Omega(g(n))\)中。
同样,\(\Omega(g(n))\)表示的是满足上述条件的所有函数的集合。
\(\Theta\) 平均情况
对于执行次数函数\(f(n)\),存在常量\(n_0,c_1,c_2\),有任意\(n\geq n_0\)使得\(0\leq c_1g(n) \leq f(n)\leq c_2g(n)\),则称\(f(n)\)是\(\Theta(g(n))\).
\(\Theta(g(n))\)也可以看作是上述所有函数的集合,其中的集合中每个成员\(f(n)\in \Theta(g(n))\)渐进非负
练习解析
假设f(n)与g(n)都是渐进非负函数,使用定义证明\(max(f(n)+g(n))=\Theta(f(n)+g(n))\)
根据平均情况的定义:要证明的存在\(c_1,c_2,n0使得任意n\geq n_0有\)
\[0\leq c_1(f(n)+g(n))\leq max(f(n)+g(n))\leq c_2(f(n)+g(n))
\]
可以看出当\(c_1=1/2,c_2=1,n_0\in N\)时上式均成立,证毕。