算法導論學習 之 漸進符號

1、大O記號(表示上界)
            1.        f(n) = O(g(n))
                        意味着:存在常數 C>0,n 0 >0,使得任意 n≥n 0 ,有 0 ≤ f(n) ≤ C·g(n) 成立。
                        如:2n 2 = O(n 3 ) 。
            2.        ​能夠將大O理解爲一個函數集:
                        O(g(n)) = { f(n) | 存在常數 C>0,n0>0,使得任意 n≥n0,有 0 ≤ f(n) ≤ C·g(n) 成立 }
                        所以,等號並不對稱,嚴格來講是 「屬於集合符號」:∈ 。
            3.        偏差界限:
                        例:f(n) = n3 + O(n2),即 f(n) 主要是 n3,但也有一些低階項 O(n2 ) 。
                        即:存在函數 f(n),有 h(n)∈O(n2) 使得 f(n) = n3 +  h(n)。
                        首先描述的是首項 n3,而後加上至多爲 n2  的偏差項。
            4.        ​更微妙的等式:
                        例:n2 + O(n) = O(n3 ),也是等號不對稱。
                        等號不表示「等於」,而表示「是」,即全部等號左邊的都是等號右邊的。
                        即:存在  O( n 3 ),有任意  n 2  + O(n) 都是  O( n 3 );反之則否則,因此不對稱。
                        準肯定義:對於任意 f(n)∈ O(n),存在 h(n)∈O(n3),使得 n2 + f(n) = h(n) 成立。
            ​5.        等式關係鏈:等式能夠從左到右傳遞下去,便可理解爲是經過「什麼是什麼」組成的鏈式表達式,
                                  第一個就是最後一個,或者說以最後一個爲上界。但不能反過來從後往前傳遞。
2、大Ω符號(表示下界)
            ​1.          f(n) = Ω(g(n))
                       Ω(g(n)) = { f(n) | 存在常數 C>0,n0>0,使得任意 n≥n0,有 0 ≤ C·g(n) ≤ f(n) 成立  }
            2.          例:√n = Ω(lgn),即對於足夠大的 n,√n 至少是 Ω(lgn) 的常數倍。
3、大Θ符號
            1.        Θ(n) = O(n) ∩ Ω(n)​
           2.        Θ(g(n)) = { f(n) | 存在常數 C1>0,C2>0,n0>0,使得任意  n≥n 0 有 0 ≤  C 1 ·g(n) ≤ f(n) ≤  C 2 ·g(n)  }

         

4、小o符號和小ω符號
         1.     o(g(n)) = { f(n) | 任意常數 C>0,存在 n0>0,使得任意 n≥n0,有 0 ≤ f(n) < C·g(n) 成立 }
                 lim [ f(n) / g(n) ] = 0 as n->∞
         2.     ω(g(n)) = { f(n) | 任意常數 C>0,存在 n0>0,使得任意 n≥n0,有 0 ≤  C·g(n)  <  f(n)  成立  }
                 lim [ f(n) / g(n) ] =  as n->∞
         3.     例:2n2 = o(n3),
                     證:存在 n0>0,當 n>n0,有 2n2 < C·n3,即 n > 2/C
                              取 n = [n0],則 n0 = 2/C 。
                               即存在 n0 = 2/C ,當 n>n0,有 2n2 < C·n3 成立,即 2n2 = o(n3) 。
         4.     注:1/2n2 = Θ(n2) ≠ o(n2)
                                                           ≠  ω (n2)
5、性質及類比:
        1.    傳遞性
                f(n) = Ө(g(n)) 和 g(n) = Ө(h(n)) => f(n) = Ө(h(n))
                f(n) = O(g(n)) 和 g(n) = O(h(n)) => f(n) = O(h(n))
                f(n) = Ω(g(n)) 和 g(n) = Ω(h(n)) => f(n) = Ω(h(n))
                f(n) = o(g(n))  和 g(n) = o(h(n)) => f(n) = o(h(n))
                f(n) = ω(g(n)) 和 g(n) = ω(h(n)) => f(n) = ω(h(n))
        2.    自反性
                f(n) = Ө(f(n))
                f(n) = O(f(n))
                f(n) = Ω(f(n))
        3.    轉置對稱性:
                f(n) = Ө(g(n)) 當且僅當 g(n) = Ө(f(n))
                f(n) = O(g(n)) 當且僅當 g(n) = Ω(f(n))
                f(n) = o(g(n)) 當且僅當 g(n) = ω(f(n))
           4.     類比:
                   能夠類比:O    Ω    Θ    o    ω
                                        ≤    ≥    =    <   >
                   但類比並非等價於;同時小符號是大符號更爲嚴格的記號,但卻沒有嚴格的小θ。


By Black Storm(使用爲知筆記)函數

相關文章
相關標籤/搜索