算法分析——算法的渐进效率分析
作者:互联网
一、大O表示法
一般用于界定函数集合的上界,渐进表达式O(g(n))的含义就是,c为正常数,函数集合O中的元素的最大值不会超过c.g(n)。f(n) = O(g(n))的含义是,函数f(n)的属于集合O(g(n)),因为函数集合O中的最大值为c.g(n),所以f(n)的最大值为c.g(n)。由于只是渐进的上界,所以当函数g(n)的阶数越小时,上界越紧确。
下面来看下 算法导论 中是如何描述大O表示法的。
当函数的大小只有上界,没有明确下界的时候,则可以使用大O表示法。f(n)= O(g(n))正式的数学定义:存在正常数c、n、n0,当n>n0的时,对于任意的f(n)对符合0<= f(n)<= c.g(n)。
————————————————
直观视觉图如下示:
二、大Ω表示法
一般用于界定函数集合的下界,渐进表达式Ω(g(n))的含义就是,函数集合Ω中的元素的最小值不会低于c.g(n)。f(n) = Ω(g(n))的含义是,函数f(n)的属于集合Ω(g(n)),因为函数集合Ω中的最小值为c.g(n),所以f(n)的最小值为c.g(n)。
算法导论 中是如何描述大Ω表示法的。
当函数的大小只有下界,没有明确的上界的时候,可以使用大Ω表示法。f(n)= Ω(g(n))正式的数学定义:存在正常数c、n、n0,当n>n0的时,对于任意的f(n)对符合0<= c.g(n)<= f(n)。
直观视觉图如下所示:
三、大θ表示法
用于界定函数的渐进上界和渐进下界。当f(n)= θ(g(n))的时候,代表着g(n)为f(n)的渐进紧确界。而θ渐进描述符在所有的渐进描述符中是最严格的一个,因为它既描述了函数的上界,有描述了函数的下界。
算法导论 中是如何描述大θ表示法的。
f(n)= θ(c.g(n))正式的数学定义:存在正常数c1、c2、n、n0,当n>n0的时,对于任意的f(n)对符合c1.g(n)<= f(n)<= c2.g(n),c1.g(n)、c2.g(n)都是渐进正函数(当n趋于无穷大的时候,f(n)为正)。
直观视觉图如下所示:
重要性质: 当且仅当函数f(n)= O(g(n))and f(n)=Ω(g(n))时,f(n)= θ(g(n))
4:题目
分析下表中左侧每行函数f(n)和每列函数g(n)之间的渐进效率关系,根据该关系属于f(n)ÎO(g(n)), f(n)ÎΩ(g(n)), f(n)ÎΘ(g(n))三种中的哪一种,在下方空白处填写合适的符号O,Ω或Θ。如果f(n)和g(n)之间有不止一种合适的渐进效率关系,仅填写最严格的那种关系。第一行已作为示范给出。(无需给出计算过程,每空1分)
g(n) |
||||||||
|
n |
n2 |
2n |
|||||
f(n) |
n2 |
Ω |
Θ |
O |
||||
|
nlogn4 |
|
|
|
||||
|
(1.1)n-10 |
|
|
|
||||
|
(n-2)! |
|
|
|
||||
|
5n+7n-1 |
|
|
答案:
g(n) |
||||||||
|
n |
n2 |
2n |
|||||
f(n) |
n2 |
Ω |
Θ |
O |
||||
|
nlogn4 |
Ω |
O |
O |
||||
|
(1.1)n-10 |
Θ |
O |
O |
||||
|
(n-2)! |
Ω |
Ω |
Ω |
||||
|
5n+7n-1 |
Θ |
O |
O |
标签:分析,上界,函数,渐进,表示法,集合,算法,n0 来源: https://www.cnblogs.com/dgwblog/p/11985455.html