В информатике (в частности, в теории сложности вычислений ) сложность наихудшего случая измеряет ресурсы (например, время работы, память ), которые требуются алгоритму при входных данных произвольного размера (обычно обозначаемых как n в асимптотических обозначениях ). Он дает верхнюю границу ресурсов, необходимых алгоритму.
В случае времени выполнения наихудшая временная сложность указывает на самое продолжительное время работы алгоритма при любом вводе размера n и, таким образом, гарантирует, что алгоритм завершится в указанный период времени. Порядок роста (например, линейный, логарифмический ) наихудшей сложности обычно используется для сравнения эффективности двух алгоритмов.
Сложность алгоритма в наихудшем случае следует противопоставлять его сложности в среднем случае , которая является средней мерой количества ресурсов, которые алгоритм использует для случайных входных данных.
Учитывая модель вычислений и алгоритм , который останавливается на каждом входе , отображение называется временной сложностью , если для каждой входной строки останавливается ровно после шагов .
Поскольку нас обычно интересует зависимость временной сложности от разных длин входных данных, злоупотребляя терминологией, временную сложность иногда относят к отображению , определяемому максимальной сложностью
входных данных с длиной или размером .
Аналогичные определения можно дать для пространственной сложности , случайной сложности и т. д.
Очень часто сложность алгоритма задается в асимптотической нотации Big-O , которая дает скорость его роста в виде с определенной вещественной функцией сравнения и значением:
Довольно часто встречается следующая формулировка:
или даже только:
Рассмотрите возможность выполнения сортировки чисел вставкой на машине с произвольным доступом . Наилучший случай для алгоритма — это когда числа уже отсортированы, что требует выполнения шагов для выполнения задачи. Однако в худшем случае входные данные для алгоритма — это когда числа подвергаются обратной сортировке и для их сортировки требуются шаги; поэтому наихудшая временная сложность сортировки вставкой равна .