多角度透徹理解漸近表示法(大O表示法)
若覺得本文寫得還可以,請多多關注本人所作書籍《C++語法詳解》電子工業出版社出版,網盤地址:
https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg
本文爲原創文章,轉載請註明出處,或註明轉載自“黃邦勇帥(原名:黃勇)
本文後續文章是《透徹理解時間複雜度》
一、漸近表示法的定義
1、漸近可理解爲“近似”的意思,漸近表示法有大O、大Ω、大Θ、小o、ω表示法,這些表示法有多種不同的定義方式,如下所示
2、不等式定義方式
- 定義1 (大O表示法):
- 若存在正常數c和N,對於所有的n ≥ N ,有0 ≤ f (n) ≤ c ∙ g(n),則稱f(n) = O( g(n) )
- 定義2 (大Ω表示法):
- 若存在正常數c和N,對於所有的n ≥ N,有0 ≤ c ∙ g(n)≤ f(n),則稱f (n)=Ω(g(n))
- 定義3 (大Θ表示法):
- 當且僅當f (n) = O(g(n)),且f (n) = Ω(g(n))時,f (n) =Θ(g(n))。也可表述爲,若存在正常數c1、c2和N,對於所有的n ≥ N,有0 ≤ c1 ∙ g(n) ≤ f (n) ≤ c2 ∙ g(n),則稱f(n)=Θ(g(n))
- 定義4 (小o表示法):
- 若對任意正常數c > 0,存在常數N > 0,對於所有的n ≥ N,有0 ≤ f (n) < c ∙ g(n), 則稱f (n) = o(g(n))。也可表述爲,若f (n) = O(g(n)),且f (n) ≠ Θ(g(n)),則f(n) = o (g(n))
- 定義5