2016-08-15 104 views
-1

我對大O符號感到迷惑。BIg O符號:n * logn

爲O(n^2) - >它二次生長,當你 n的大小,操作的次數實際上將通過一個因素相乘。

O(n * log(n)) - >當您將n的大小加倍時,操作的數量實際上會乘以多少?

2n*log (2n)/n*log(n) = 2*log(2n)/log(n) =2*log_n (2n) 

這是因素嗎?

+1

是啊,這取決於N'的'值。對於較大的值,它將接近2(但始終大於該值)。 – mszymborski

+0

可能重複[什麼是簡單的英文解釋「大O」符號?](http://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-符號) – vaxquis

+0

http://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-notation?rq=1 http://stackoverflow.com/questions/107165/八歲大的孩子?rq = 1 http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly?rq=1 etc – vaxquis

回答

1

O(大哦)表示法是漸近情況下的邊界,它與操作次數有關,儘管不是精確的數字。

如果您在O(n log n)處理算法中加倍n。

log (2n) = log(n) + log(2),所以你可以假設你會

2 (log(n)+log(2)/log(n))倍的初始操作。

或者作爲@Jeremy說2(1+log base n of 2)

+1

或2(1 + log 2的基數n)。 –