W tej odpowiedzi zakładamy, że i T są nieujemne. Nasz dowód działa zawsze, gdy f = Θ ( g ) dla niektórych monotonicznych g . Obejmuje to przykład Mergesort, w którym f = Θ ( n ) , i dowolną funkcję, która ma wielomianowe tempo wzrostu (lub nawet Θ ( n a log b n ) ).fTf=Θ(g)gf=Θ(n)Θ(nalogbn)
Rozważmy najpierw przypadek, że jest monotoniczny i nie zmniejsza się (założymy to założenie później). Koncentrujemy się na nawrocie próbki
T ( n ) = T ( ⌊ n / 2 ⌋ ) + T ( ⌈ n / 2 ⌉ ) + f ( n ) .
Ten nawrót wymaga dwóch przypadków podstawowych, T ( 0 ) i T ( 1 ) . Przyjmujemy założenie, że T ( 0 )f
T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+f(n).
T(0)T(1) , które również relaksujemy później.
T(0)≤T(1)
Twierdzę, że jest monotoniczny i nie maleje. Udowadniamy przez całkowitą indukcję, że T ( n + 1 ) ≥ T ( n ) . Jest to podane dla n = 0 , więc niech n ≥ 1 . Mamy
T ( n + 1 )T(n)T(n+1)≥T(n)n=0n≥1
Oznacza to, że
T(2⌊ log 2 n⌋)≤T(n)≤T(2⌈ log 2 n⌋).
Więc jeśliT(2
T(n+1)=T(⌊(n+1)/2⌋)+T(⌈(n+1)/2⌉)+f(n+1)≥T(⌊n/2⌋)+T(⌈n/2⌉)+f(n)=T(n).
T(2⌊log2n⌋)≤T(n)≤T(2⌈log2n⌋).
, gotowe. Jest tak zawsze, gdy rozwiązanie dla potęg dwóch wynosi postać
T ( n ) = Θ ( n a log b n ) .
T(2m)=Θ(T(2m+1))T(n)=Θ(nalogbn)
T(0)≤T(1)T′T′(0)=T′(1)=min(T(0),T(1))T′(n)≤T(n)T′′T′′(0)=T′′(1)=max(T(0),T(1)), a następnie . Przywołując twierdzenie Master, widzimy, że i dla tej samej funkcji , a więc .T(n)≤T′′(n)T′=Θ(h)T′′=Θ(h)hT=Θ(h)
Rozluźnijmy teraz założenie, że jest monotoniczny. Załóżmy, że dla niektórych funkcji monotonicznych . Zatem dla niektórych i wystarczająco dużych. Zakładamy, dla uproszczenia, że ; ogólny przypadek można rozpatrywać jak w poprzednim akapicie. Ponownie zdefiniować dwie nawrotów przez zastąpienie w (odpowiednio). Po raz kolejny twierdzenie Master da ten sam wynik (do stałych wielokrotności), który jest również identyczny (do stałych wielokrotności) z tym, co uzyskalibyśmy, rozwiązując pierwotną rekurencję tylko na potęgach dwóch.ff=Θ(g)gcg(n)≤f(n)≤Cg(n)c,C>0nn=0T′,T′′fcg,Cg