2015-01-15 90 views
0

對於循環中循環內部的這種函數aFunction()具有O(nlog(n))的大-o,如何確定最壞情況下的時間複雜度?確定while循環內部的函數的大-O

i ← 0 
while (i < n) 
    aFunction(...) 
    i ← i+1 
done 
+1

什麼是論據,他們是否依賴於像'我'或'n'這樣的東西?您的代碼示例太薄 – Leeor

+0

由於它涉及算法時間複雜性並且不涉及實際的代碼,因此這看起來是無關緊要的。改爲考慮cs.stackexchange.com。 – dg99

回答

4

想想這裏做了多少工作。每撥打aFunction需要時間O(n日誌n),你總共調用n次。總的來說,這使得總共有O個工作(總共工作時間爲0天)。

希望這會有所幫助!

+0

不是這麼簡單。每個呼叫都需要'O(i log i)'。所以爲了確保你是對的,我們必須把所有的'i log i'從i = 1到n。 (如果我正確理解OP的問題) – Everv0id

+0

@ Everv0id從提供的僞代碼中,我無法判斷每次迭代時是否在'i'或'n'上調用'aFunction'。我認爲這是'n',但你說得對,如果每次迭代都是'我',那麼這裏需要更多的數學。 – templatetypedef