一、大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 |