Die drei Fälle des Master-Theorems, auf die Sie sich beziehen, sind in der Einführung in Algorithmen von Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest und Clifford Stein (2. Auflage, 2001) .
Es wird richtig beobachtet, dass die fragliche Wiederholung zwischen Fall 2 und Fall 3 liegt. Das heißt, wächst schneller als n, aber langsamer als n 1 + & epsi ; für jedes & epsi ; > 0 .f(n)=nlognnn1+εε>0
Der Satz kann jedoch verallgemeinert werden, um diese Wiederholung abzudecken. Erwägen
Fall 2A:
Betrachten Sie für einige k ≥ 0f(n)=Θ(nlogbalogkbn)k≥0 .
Dieser Fall reduziert sich auf Fall 2, wenn . Es ist intuitiv klar, dass entlang jedes Zweigs des Wiederholungsbaums f ( x ) Θ ( log b n ) Mal hinzugefügt wird . Eine Skizze eines formelleren Beweises finden Sie unten. Das Endergebnis ist dask=0f(x)Θ(logbn)
T(n)=Θ(nlogbalogk+1bn)
.
In der Einführung in Algorithmen diese Aussage als Übung belassen.
Wenn wir diese Aussage auf die fragliche Wiederholung anwenden, erhalten wir schließlich
T(n)=Θ(n⋅log2n).
Weitere Details zum Master-Theorem finden Sie auf der ausgezeichneten (imho) Wikipedia-Seite .
Da @sdcvvc in den Kommentaren darauf hinweist, dass Fall 3 hier nicht gilt, kann man sich auf die Regel von L'Hospital berufen, die besagt, dass
für alle Funktionenf(x)undg(x), diein der Nähe voncdifferenzierbar sind. Angewandt auff(n)=nlognundg(n)=n1+εeindie zeigenkannlogn∉& THgr;(n1+ε).
limx→cf(x)g(x)=limx→cf′(x)g′(x)
f(x)g(x)cf(n)=nlogng(n)=n1+εlogn∉Θ(n1+ε).
Skizze des Beweises des Hauptsatzes für Fall 2A.
Dies ist eine Reproduktion von Teilen des Beweises aus der Einführung in Algorithmen mit den erforderlichen Änderungen .
Zuerst beweisen wir das folgende Lemma.
Lemma A:
g(n)=∑j=0logbn−1ajh(n/bj)
where
h(n)=nlogbalogkbn. Then
g(n)=nlogbalogk+1bn.
Proof:
Substituting the h(n) into the expression for g(n) one can get
g(n)=nlogbalogkbn∑j=0logbn−1(ablogba)j=nlogbalogk+1bn.
QED
If n is an exact power of b given a recurrence
T(n)=aT(n/b)+f(n),T(1)=Θ(1)
one can rewrite it as
T(n)=Θ(nlogba)+∑j=0logbn−1ajT(n/bj).
Substituting
f(n) with
Θ(nlogbalogkbn), moving
Θ outside and applying Lemma A we get
T(n)=Θ(nlogbalogk+1bn).
Generalizing this to an arbitrary integer n that is not a power of b is beyond the scope of this post.