2011-02-11 120 views
0

我是算法的初學者,我不知道如何計算複雜性。如何計算複雜度?

Example: 
int x=10,y; 
y = x; 

上面的例子中的複雜性是什麼?

謝謝

+1

關於哪個變量?我建議獲取教科書是比在StackOverflow上發佈問題更好的學習方法。 – 2011-02-11 11:56:54

回答

2

這應該是O(1),如果你參考O-Notation。

2

Big O Notation這對應於O(1),這基本上意味着操作的運行時間是恆定的或至少小於某個常數。 Ergo,運行時間不取決於您的輸入。正如你從我寫的內容中推斷的那樣,大O符號只給出了操作的上限。還有其他符號可以給出一個下限等等。

它不依賴於輸入可能是一個情況的一個例子:

int res = 0; 
int[] arr = getSomeArray(); 
foreach (int i in arr) 
    res = res + i; 

這裏的運行時間取決於陣列有多大,如果我們給數組的長度變n那麼這將是O(n)。大O符號再一次沒有指定執行需要多長時間,但在這種情況下,只是說我們可以將n乘以某個常數,然後它將在n*some s內完成。

這裏給出更詳細的解釋:What is a plain English explanation of "Big O" notation?