Приложение 1
Примеры
основных сложностей алгоритмов:
Название |
Время
работы |
Пример
алгоритма |
Постоянное
время |
|
Определение
чётности целого числа (представленного
в двоичном виде) |
Логарифмическое
время |
O(log n) |
Двоичный
поиск |
Линейное
время |
O(n) |
Поиск
наименьшего или наибольшего элемента
в неотсортированном массиве |
Линейно-логарифмическое
время |
O(n log n) |
Максимально
быстрая сортировка сравнением |
Квадратичное
время |
O(n2) |
Сортировка
пузырьком, сортировка вставками,
прямая свёртка |
Кубическое
время |
O(n3) |
Обычное
умножение двух n×n матриц |
Экспоненциальное
время
(с
линейной экспонентой) |
2O(n) |
Решение
задачи коммивояжёра с помощью
динамического программирования |
Факториальное
время |
O(n!) |
Решение
задачи коммивояжёра полным перебором |
Наглядный
пример выполнения алгоритма с определенной
сложностью в зависимости от размера
входных данных:
График
роста O — большое
Приложение
2
Асимптотическая
сложность алгоритмов (в лучшем, худшем
и среднем случае работы)