Как делать оценку сложности?
19.11.2024 - Инструкция для студентов
Last updated
19.11.2024 - Инструкция для студентов
Last updated
Оценка сложности алгоритма помогает понять, как он будет вести себя при увеличении размера входных данных. Основное внимание уделяется скорости выполнения и объему памяти, который он использует.
Временная сложность Определяет, сколько операций выполняется алгоритмом для обработки данных. Обозначается через O(n), где n — размер входных данных.
Пространственная сложность Показывает, сколько памяти требуется для выполнения алгоритма. Учитываются как входные данные, так и используемые переменные.
Константная
O(1)
Поиск элемента в хэш-таблице
Линейная
O(n)
Проход по массиву
Логарифмическая
O(log n)
Бинарный поиск
Линейно-логарифмическая
O(n log n)
Быстрая сортировка
Квадратичная
O(n²)
Сравнение всех пар элементов
Кубическая
O(n³)
Тройная вложенность циклов
Факториальная
O(n!)
Перебор всех перестановок
Цикл: выполняется n
раз (в худшем случае).
Сложность: O(n).
Условие внутри цикла: выполняется за O(1).
Итоговая сложность: O(n).
Важно учитывать худший случай, так как он показывает пределы работы алгоритма.
Некоторые алгоритмы имеют разные сложности для лучших, средних и худших случаев (например, сортировка вставками).
Линковщик: программа, которая объединяет объектный код и зависимости в финальный исполняемый файл (.EXE).