Asymptotische Komplexität von T (n) = T (n-1) + 1 / n [geschlossen]

8

Es gibt einen Algorithmus mit der zeitlichen Komplexität

%Vor%

Ich löse auf seine asymptotische Komplexität und bekomme Ordnung als "n", aber die gegebene Antwort lautet "log n". Ist es richtig? Wenn es log n ist, warum?

    
sandepp 27.03.2013, 09:58
quelle

2 Antworten

9

Man kann leicht sehen (oder formal mit Induktion bewiesen), dass T (n) die Summe von 1 / k für die Werte von k von 1 bis n ist. Dies ist die harmonische Zahl , H n = 1 + 1/2 + 1/3 + ... + 1 / n.

Asymptotisch wachsen die harmonischen Zahlen in der Größenordnung von log (n). Dies liegt daran, dass die Summe nahe dem Wert des Integrals von 1 / x von 1 bis n ist, was gleich dem natürlichen Logarithmus von n ist. Tatsächlich ist Hn = ln (n) + γ + 0 (1 / n), wobei γ eine Konstante ist. Daraus kann man leicht zeigen, dass T (n) = Θ (log (n)).

    
interjay 27.03.2013, 12:32
quelle
3

Für weitere Details:

Mit H(N) = 1 + 1/2 + 1/3 + ... + 1/N

Die Funktion x :-> 1/x ist eine fallende Funktion also:

Wir summieren von 1 to N den linken Teil und für den rechten Teil berechnen wir aus 2 to N und wir fügen 1 hinzu, wir erhalten:

Dann berechnen wir die linken und rechten Teile: ln(N+1) <= H(N) <= 1 + ln(N)

Das bedeutet H(N)/ln(N) -> 1 daher H(N)=Θ(log(N))

(aus Ссылка )

    
Tony Morris 27.03.2013 14:59
quelle

Tags und Links