Вы, конечно, могли установить c = 100
так, чтобы n^c
было (очень, очень) грубой асимптотической верхней границей для log(n)
, но это дало бы вам ужасную и абсолютно бесполезную оценку времени выполнения T(n)
.
Это говорит вам следующее: каждая полиномиальная функция n^c
растет быстрее, чем логарифм, независимо от того, насколько мала c
, пока она остается положительной. Можно было бы взять c=0.0000000000001
, вначале оно казалось бы смехотворно маленьким, но в какой-то момент оно стало бы больше, чем log(n)
, и расходилось бы в бесконечность гораздо быстрее, чем log(n)
. Поэтому, чтобы избавиться от члена n^2 log(n)
и иметь возможность применить только полиномиальную версию Основной теоремы, вы ограничиваете логарифмический член чем-то, что растет достаточно медленно (но все же быстрее, чем log(n)
). В этом примере достаточно n^c
с c=0.5
, но вы также можете взять c=10^{-10000}
"просто для уверенности".
Затем вы применяете теорему Мастера и получаете разумную (и точную) асимптотическую верхнюю границу для вашего T(n)
.
person
Andrey Tyukin
schedule
20.04.2015