Trzy przypadki twierdzenia mistrza, do których się odwołujesz, zostały udowodnione we wstępie do algorytmów Thomasa H. Cormena, Charlesa E. Leisersona, Ronalda L. Rivesta i Clifforda Stein'a (wydanie drugie, 2001).
Prawidłowo zaobserwowano, że omawiany nawrót przypada między przypadkiem 2 a przypadkiem 3. To znaczy fa( n ) = n logn rośnie szybciej niż n ale wolniej niż n1 + ε dla dowolnego ε > 0 .
Twierdzenie to można jednak uogólnić w celu uwzględnienia tego nawrotu. Rozważać
Przypadek 2A:
Rozważmy fa( n ) = Θ ( nlogbzalogkbn ) dla niektórych k ≥ 0 .
Przypadek ten redukuje się do Przypadku 2, gdy k = 0 . Jest intuicyjnie wiadomo, że wzdłuż każdej gałęzi drzewa nawrót fa( x ) jest dodana Θ(logbn ) razy. Szkic bardziej formalnego dowodu można znaleźć poniżej. Ostateczny wynik jest taki
T.( n ) = Θ ( nlogbzalogk + 1bn )
.
We wstępie do algorytmów to stwierdzenie pozostawia się jako ćwiczenie.
W końcu otrzymujemy to stwierdzenie w odniesieniu do wspomnianego ponownego wystąpienia
T.( n ) = Θ ( n ⋅ log2)n ) .
Więcej szczegółów na temat Twierdzenia Mistrza można znaleźć na doskonałej (imho) stronie Wikipedii .
Jak wskazuje @sdcvvc w komentarzach, aby udowodnić, że przypadek 3 nie ma tutaj zastosowania, można powołać się na zasadę L'Hospital, która mówi, że
limx → cfa( x )sol( x )= limx → cfa′( x )sol′( x )
żadnych funkcji fa( x ) i sol( x ) różniczkowej w pobliżu c . Stosując to f(n)=nlogn i g(n)=n1+ε można wykazać, że logn∉Θ(n1+ε).
Szkic dowodu twierdzenia głównego dla przypadku 2A.
Jest to reprodukcja części dowodu z Wprowadzenie do algorytmów z niezbędnymi modyfikacjami .
Najpierw udowodnimy następujący lemat.
Lemat A:
Rozważ funkcję
g(n)=∑j=0logbn−1ajh(n/bj)
gdzie h(n)=nlogbalogkbn.Następnie
g(n)=nlogbalogk+1bn.
Dowód:
podstawiając h(n) do wyrażenia g(n) można uzyskać
g(n)=nlogbalogkbn∑j=0logbn−1(ablogba)j=nlogbalogk+1bn.
CO BYŁO DO OKAZANIA
Jeśli n jest dokładną potęgą b danym nawrocie
T(n)=aT(n/b)+f(n),T(1)=Θ(1)
można to przepisać jako
T(n)=Θ(nlogba)+∑j=0logbn−1ajf(n/bj).
f(n)Θ(nlogbalogkbn)Θ
T(n)=Θ(nlogbalogk+1bn).
nb