我正在做一些介紹性的算法分析實踐問題,在它的某些方面仍然有點不穩定。我已經對下面的練習拍了一下,但沒有答案。評論是我自己的工作。我想知道在這方面有經驗的人是否願意看看我的嘗試,並讓我知道我是否正確接近它。任何幫助表示讚賞!Big-Theta算法分析
「將下面的僞代碼的漸近最差情況運行時間作爲Big-Theta表達式。」
procedure Sum(n)
S ← 0 //1 for assignment
k ← n //1 for assignment
while k ≥ 1 do //O(log n)
for i = 1, 2, . . . , n do //n*O(log n)
S ← S + n //(1 for assignment + 1 for addition)*n*O(log n)
end for
k ← k/2 //1 for division + 1 for assignment
end while
return S //1 for return
end procedure
//合計爲1 + 1 + O(log n)的+ N O(log n)的+ 2N O(log n)的+ 2 + 1 =
// 5 +( 3N + 1)* O(log n)的=
//Θ[(3N + 1)日誌n]的
看起來不錯,但結果可以簡化爲'Theta(n log n)',因爲常數因子和低階項並不重要。 – Henry