В этом ответе мы предполагаем, что и неотрицательны. Наше доказательство работает всякий раз, когда для некоторого монотонного . Это включает ваш пример Mergesort, в котором , и любую функцию с полиномиальной скоростью роста (или даже ).fTf=Θ(g)gf=Θ(n)Θ(nalogbn)
Давайте сначала рассмотрим случай, когда является монотонно неубывающим (мы ослабим это предположение позже). Мы сконцентрируемся на повторяемости вашей выборки
Это повторение требует двух базовых случаев, и . Сделаем предположение, что , что мы позже и ослабим.f
T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+f(n).
T(0)T(1)T(0)≤T(1)
Я утверждаю, что является монотонно неубывающим. По полной индукции докажем, что . Это дается для , поэтому пусть . У нас есть
Это означает, что
Итак, если , все готово. Это всегда так, если решение для степеней двойки имеет вид .T(n)T(n+1)≥T(n)n=0n≥1
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(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