3 回答

TA貢獻1804條經驗 獲得超2個贊
Big-O對于小o ≤
來說就是如此<
。Big-O是包含上限,而little-o是嚴格的上限。
例如,函數f(n) = 3n
是:
在
O(n2)
,o(n2)
和O(n)
不是
O(lg n)
,o(lg n)
或o(n)
類似地,數字1
是:
≤ 2
,< 2
和≤ 1
不是
≤ 0
,< 0
或< 1
這是一張表,顯示了一般的想法:
(注意:該表是一個很好的指南,但它的限制定義應該是上限而不是正常限制。例如,3 + (n mod 2)
永遠在3到4之間振蕩。O(1)
盡管沒有正常的限制,它仍然存在,因為它仍然有a lim sup
:4.)
我建議記住Big-O符號如何轉換為漸近比較。比較更容易記住,但不太靈活,因為你不能說n O(1) = P之類的東西。

TA貢獻1797條經驗 獲得超6個贊
我發現當我無法在概念上掌握某些東西時,思考為什么要使用X有助于理解X.(不是說你沒有嘗試過,我只是在設置舞臺。)
[你知道的東西]分類算法的常用方法是運行時,通過引用算法的大復雜性,你可以很好地估計哪一個是“更好” - 無論哪個具有“最小”功能在O!即使在現實世界中,O(N)比O(N2)“更好”,除非像超大質量常數之類的傻事。[/你知道的東西]
假設有一些在O(N)中運行的算法。很好,對吧?但是,讓我們說你(你很聰明的人,你)想出一個在O(N / loglogloglogN)中運行的算法。好極了!它更快!但是當你撰寫論文時,你會一遍又一遍地寫下傻傻的寫作。所以你寫了一次,然后你可以說“在本文中,我已經證明了算法X,以前可以在時間O(N)中計算,實際上是在o(n)中可計算的?!?/p>
因此,每個人都知道你的算法更快 - 有多少不清楚,但他們知道它更快。理論上。:)
添加回答
舉報