2014-10-22 117 views
1

我工作的空間和時間複雜度和過這個與大O混亂

Ó來了(N +(N/2 + N/4 .... N/N))= O(N +的log(n))。

我沒有得到這是如此的真實?任何人都可以提供一些見解嗎?

+0

如果你說n/2 + n/4 + n/6 + ... + n/n,會有一些困惑..因爲如果n是(1,3,5,7等等)將永遠不會有n/n :) – mlwn 2014-10-22 00:49:18

+4

分母的模式是什麼?這是2,4,8,16,...還是2,4,6,8,10,或其他? – Charles 2014-10-22 00:56:47

回答

7

我認爲這取決於你的分母。求和

N + N/2 + N/4 + N/8 + ... + N/N

總和出爲O(n),因爲它等於

N(1 + 1/2 1/4 + 1/8 + + ...)

≤ 2n個

因此,O(n + log n)在技術上是正確的,因爲O(n + log n)= O(n),但這是寫它的一種非常奇怪的方式。 O(n)是寫出來的好方法。

求和

N + N/2 + N/4 + N/6 + N/8 + ... + N/N

工程以

n(1 + 1/2 + 1/4 + 1/6 + 1/8 + ... + 1/n)

= n(1+(1/2)*(1 + 2 + 1/4 + 1/6 + ... + 1 /(n/2)))

= N(1 +(1/2)H _ {(N/2)})

= Θ(N log n)的

此工作,因爲nth harmonic number Θ是(log n)的。這可能與預期的更接近,但用+ ×代替。

希望這會有所幫助!