下午好一切,替代大O符號?
我們說一個hashtable有O(前提是我們有鑰匙)(1)查找,而linked list有O(1)下一個節點查找(前提是我們有一個參考到當前節點)。
然而,由於如何Big-O notation作品,這不是在表達(或分化)的算法X的成本是非常有用的,VS的算法X +米的成本。
例如,即使我們的標籤的哈希表的查找和鏈表的查找爲O(1)這兩個,這兩個O(1)■歸結到一個非常不同數量的確實步驟,
的鏈接列表的查找固定爲x步驟數。但是,哈希表的查找是變量。哈希表的查找的成本取決於散列函數的成本,所以爲哈希表的查找所需的步驟數是:X +米,
其中X是固定數目
和米是未知可變值
換句話說,即使我們所說的兩種操作O(1),哈希表的查找成本是幅度比鏈表的查找的成本較高。
的大O符號是具體地約輸入數據集合的大小。這確實有它的優點,但它也有它的缺點,如我們將所有非變量歸併爲1時我們可以看到的。我們不能再看到它裏面的m變量(哈希函數)。
除了大O符號,有另一個(建立)的符號,我們可以使用用於表達固定成本O(1),這意味着X操作和可變成本O(1),這意味着x + m(m,散列函數)的操作次數?
從什麼我收集,你在找什麼不會有太大的記譜目的,因爲這是顯而易見的任何語言來陳述:這需要很多 s執行。 (其中是特定於上下文的。)真的,如果有某種特殊符號,除了「not big-O」之外,它不會添加任何內容,因爲沒有說明大-O。 –
Kaganar
2012-04-25 18:20:08
@Kaganar *物理*這個詞似乎在這裏引起一些混淆。我已經從問題中刪除了* physical *這個詞,希望能使它更清楚。 – Pacerier 2012-04-25 18:32:47