У цій відповіді ми припускаємо, що і T є негативними. Наше доведення працює, коли f = Θ ( g ) для деякого монотонного g . Сюди входить ваш приклад Mergesort, у якому f = Θ ( n ) , і будь-яка функція, яка має поліномічну швидкість росту (або навіть Θ ( n a log b n ) ).fTf=Θ(g)gf=Θ(n)Θ(nalogbn)
Розглянемо спочатку випадок, що монотонно не зменшується (це припущення ми розслабимо пізніше). Ми сконцентруємося на вашому повторенні вибірки
T ( n ) = T ( ⌊ n / 2 ⌋ ) + T ( ⌈ n / 2 ⌉ ) + f ( n ) .
Цей рецидив потребує двох базових випадків, T ( 0 ) і T ( 1 ) . Ми робимо припущення, що T ( 0 )f
T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+f(n).
T(0)T(1) , за яким ми також пізніше розслабимось.
T(0)≤T(1)
Я стверджую, що є монотонним не спадаючим. Доведемо повною індукцією, що T ( n + 1 ) ≥ T ( n ) . Це задано для n = 0 , тому нехай n ≥ 1 . Маємо
T ( n + 1 )T(n)T(n+1)≥T(n)n=0n≥1
З цього випливає, що
T(2⌊ log 2 n⌋)≤T(n)≤T(2⌈ log 2 n⌋).
Отже, якщоT(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⌋).
, ми закінчили. Це завжди так, якщо рішення для степенів двох має вигляд
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))T(n)≤T′′(n)T′=Θ(h)T′′=Θ(h) для тієї ж функції , тому також.hT=Θ(h)
Тепер давайте розслабимо припущення, що є монотонним. Припустимо, що для деякої монотонної функції . Таким чином, для деяких і досить великий. Для простоти вважаємо, що ; загальний випадок може бути розроблений, як у попередньому пункті. Знову визначаємо два повторення шляхом заміни на (відповідно). Ще раз магістральна теорема дасть той самий результат (до постійних кратних), який також є ідентичним (до постійних кратних) тому, що ми отримали, вирішивши початковий повтор лише за потужностями двох.ff=Θ(g)gcg(n)≤f(n)≤Cg(n)c,C>0nn=0T′,T′′fcg,Cg