電腦演算法分析之漸進記號

來源:互聯網
上載者:User
前言

在學習電腦演算法時,知道插入排序的時間複雜度是O(n2),那O記號到底是什麼意思呢?本文主要介紹幾個演算法分析時用到的記號。

大O記號

定義:O(g(n)) = { f(n) : 存在正常數c和n0 ,使對所有的n >= n0,都有 0 <= f(n) <= cg(n) }。大O記號給出函數的漸進上界。

, 則可以表示為 f(n) = O(n2)。證明:

要使得 0 <= f(n) <= cg(n)     

存在c = 9/2 ,n0 = 1,使得對所有的n >= n0都有 0 <= f(n) <= cg(n)。

O(g(n) 以及後面講到的記號表示的都是集合,而f(n) = O(n2)的實際意義 是 f(n) ∈ O(n2)。

假設有 ,

則 g(n) = O(n2) , f(n) = O(n2)

大Ω記號

定義:Ω(g(n)) = { f(n) : 存在正常數c和n0 ,使對所有的n >= n0,都有 0 <= cg(n) <= f(n) }。大Ω記號給出函數的漸進下界。

假設有 , 

則 g(n) = Ω(n) , f(n) = Ω(n)

大Θ記號

定義:Θ(g(n)) = { f(n) : 存在正常數c1和c2和n0 ,使對所有的n >= n0,都有 0 <= c1g(n) <= f(n) <= c2g(n) }。大Θ記號給出函數的漸進確界。

假設有 ,

則 g(n) = Θ(n) , f(n) =Θ(n2)

小O記號

定義:o(g(n)) = { f(n) : 對任意正常數c,存在n0 ,使對所有的n >= n0,都有 0 <= f(n) <= cg(n) }。小o記號給出函數的非漸進緊確的上界。

假設有 ,

則 g(n) = o(n2) , f(n) O(n2)

小記號

定義:(g(n)) = { f(n) : 對任意正常數c,存在n0 ,使對所有的n >= n0,都有 0 <= cg(n) <= f(n) }。小記號給出函數的非漸進緊確的下界。

假設有 ,

則 g(n) (n) , f(n) = (n)

總結

並不是所有的函數都可以漸進比較的,如果 的極限值不存在(不等於0,常數以及無窮大)。比如

的極限就不存在而且不等於無窮大。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.