我在解決算法分析問題時遇到了麻煩。我似乎沒有確定線性或平方算法,但完全失去了nlogn或logn算法,這些似乎主要來自while循環?這是我一直在尋找一個例子:分析大哦符號僞代碼
Algorithm Calculate(A,n)
Input: Array A of size n
t←0
for i←0 to n-1 do
if A[i] is an odd number then
Q.enqueue(A[i])
else
while Q is not empty do
t←t+Q.dequeue()
while Q is not empty do
t←t+Q.dequeue()
return t
我最好的猜測是用於循環被執行n次,其嵌套while循環Q倍使NQ和最終while循環也Q倍導致O(NQ + Q )這是線性的?
隊列是如何實現的? – yassin 2010-04-09 15:34:38
我會想象如果它沒有指定,可以假定隊列操作(入隊和出隊)在'O(1)'中運行。 – FrustratedWithFormsDesigner 2010-04-09 15:36:44
嗨,它沒有在問題中指定我假設que方法將是O(1)。 謝謝 – drunkmonkey 2010-04-09 15:39:10