Три случая основной теоремы, на которые вы ссылаетесь, доказаны во введении к алгоритмам Томасом Х. Корменом, Чарльзом Э. Лейзерсоном, Рональдом Л. Ривестом и Клиффордом Стейном (2-е издание, 2001).
Правильно замечено, что рассматриваемая повторяемость находится между случаем 2 и случаем 3. То есть растет быстрее, чем n, но медленнее, чем n 1 + ε для любого ε > 0 .е( n ) = n logNNN1 + εε > 0
Однако теорема может быть обобщена, чтобы охватить это повторение. Рассматривать
Случай 2А.
Рассмотрим для некоторого k ≥ 0 .е(n)=Θ(nlogbalogkbn)k≥0
Этот случай сводится к случаю 2 , когда . Интуитивно ясно , что вдоль каждой ветви дерева повторения F ( х ) добавляется thetas ; ( лог б п ) раз. Эскиз более формального доказательства можно найти ниже. Окончательный результат в том , чтоk=0f(x)Θ(logbn)
.
T(n)=Θ(nlogbalogk+1bn)
В введении к алгоритмам это утверждение остается в качестве упражнения.
Применяя это утверждение к рассматриваемой рекурсии, мы, наконец, получаем
T( n ) = Θ ( n ⋅ log2н ) .
Более подробную информацию об основной теореме можно найти на превосходной (imho) странице Википедии .
Поскольку @sdcvvc указывает в комментариях, чтобы доказать, что случай 3 здесь не применим, можно использовать правило Л'Оспиталя, которое гласит, что
для любых функцийF(х)иг(х)дифференцируема в окрестностис. Применяя это кF(п)=пвойтипиг(п)=п1+εможно показатьчтожурналп∉thetas(п1+ε).
Итх → се( х )грамм( х )= лимх → се'( х )грамм'( х )
е( х )грамм( х )се( n ) = n logNграмм( n ) = n1 + εжурналп ∉ & thetas ; ( п1 + ε) .
Набросок доказательства основной теоремы для случая 2А.
Это воспроизведение частей доказательства из введения в алгоритмы с необходимыми модификациями .
Сначала докажем следующую лемму.
Лемма А:
Рассмотрим функцию
,
где ч ( п ) = п войти б в журнал K б н . Тогда
g ( n ) = n log b a log k + 1 b n .
грамм( n ) = ∑J = 0журналбn - 1aJч ( н / бJ)
h ( n ) = nжурналбaжурналКбп .грамм( n ) = nжурналбaжурналк + 1бп .
Доказательство:
подставляя в выражение для g ( n ), можно получить
g ( n ) = n log b a log k b nч ( н )грамм( н )
грамм( n ) = nжурналбaжурналКбNΣJ = 0журналбn - 1( абжурналбa)J= nжурналбaжурналк + 1бп .
QED
Nб
T( n ) = a T( н / б ) + ф( н ) ,T( 1 ) = Θ ( 1 )
T( n ) = Θ ( nжурналбa) + ∑J = 0журналбn - 1aJT( н / бJ) .
е( н )Θ ( нжурналбaжурналКбн )Θ
T( n ) = Θ ( nжурналбaжурналк + 1бн ) .
Nб