Сложность алгоритмов

Вычислительная сложность — понятие в информатике и теории алгоритмов, обозначающее функцию зависимости объёма работы, которая выполняется некоторым алгоритмом, от размера входных данных.
Обычно у алгоритмов бывает две сложности:
Временная сложность — как количество операций, которые выполняются при работе алгоритма, связано с объёмом входных данных.
Сложность по памяти — как количество памяти, которое нужно алгоритму, связано с размером входных данных.
Некоторые виды сложности алгоритмов:
O(n) — линейная сложность. Такой сложностью обладает, например, алгоритм поиска наибольшего элемента в не отсортированном массиве.
O(log n) — логарифмическая сложность. Простейший пример — бинарный поиск.
O(n2) — квадратичная сложность. Такую сложность имеет, например, алгоритм сортировки вставками.
O(1) — время работы алгоритма вообще не зависит от размера входных данных. Например, для определения значения третьего элемента массива не нужно ни запоминать элементы, ни проходить по ним сколько-то раз.
Оценка сложности помогает выбирать оптимальные пути решения задач исходя из текущих условий и требований.
Last updated