Основная теорема (анализ алгоритмов)
-
Основная теорема асимптотического анализа
- Основная теорема позволяет определить асимптотическую сложность рекурсивных алгоритмов.
- Используется для анализа алгоритмов, которые имеют рекурсивные вызовы с полиномиальными аргументами.
- Позволяет определить, является ли алгоритм линейным, квадратичным, кубическим и т.д. по времени выполнения.
-
Формулировка основной теоремы
- Основная теорема утверждает, что если рекурсивная функция удовлетворяет определенным условиям, то ее сложность равна
- Θ
- (
- f
- n
- ))
- {\displaystyle \Theta (f(n))}
- .
- Условие 1: рекурсивная функция должна быть ограничена сверху полиномом с меньшей степенью.
- Условие 2: рекурсивная функция должна иметь не более одного корня.
- Условие 3: рекурсивная функция должна быть ограничена снизу полиномом с большей степенью.
-
Примеры использования основной теоремы
- Пример 1: рекуррентное соотношение для вычисления суммы степеней чисел Фибоначчи удовлетворяет условиям случая 1.
- Пример 2: рекуррентное соотношение для умножения двух чисел удовлетворяет условиям случая 2.
- Пример 3: рекуррентное соотношение для вычисления факториала удовлетворяет условиям случая 3.
-
Недопустимые рекуррентные соотношения
- Некоторые рекуррентные соотношения не могут быть решены с помощью основной теоремы.
- Примеры включают рекуррентные соотношения с непостоянными коэффициентами, неполиномиальными различиями и нарушением регулярности.