算法分析-渐进分析

几种基本渐进符号的解释

要注意的一点是,算法分析中的数量级\(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\)时上式均成立,证毕。

posted @ 2020-03-14 10:49  Bankarian  阅读(1048)  评论(0编辑  收藏  举报