這個回圈的時間復雜度是多少?
R = 40;
while(R>=10){
x = x-1;
R = R div 2;
}
如果你也向我解釋一下,我真的很感激。
uj5u.com熱心網友回復:
每個周期 R 減半。
所以O(log_2 R)
如果R=40無法更改,則回圈將只運行 3 次,因此它是恒定的并且O(1)
uj5u.com熱心網友回復:
時間復雜度為O(log 2 R)。
想法是 R 每次進入回圈時都會除以 2。R/2, R/2 2 , R/2 3 ...
在某個點 R/2 x = 10。
所以這等于 2 x = (R/10)
和 x = log 2 (R/10)。
由于這似乎接近 log 2 R,我們可以說它 ~ O(log 2 R)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/490963.html
下一篇:Prim的演算法輸出為空
