Говоря о случае означает, что вы рассматриваете производительность алгоритма для какого-то определенного ввода. Наихудший случай означает «для того, что мы собираемся обсудить, рассмотрите возможность прохождения всего через все возможные входы и сделайте утверждение для применения к самому медленному запуску» и т. Д.
Ограничениеэто неравенство, утверждение, что что-то меньше или больше, чем что-то еще.Граница сложности говорит о том, что какой бы ни была ее функция сложности, она больше или меньше указанной.Big-O, little-o, Omega, все записи, указывающие на границы.Если что-то есть O (n), это означает, что прогоны описанного алгоритма по входу, удовлетворяющему параметру n, никогда не будут хуже, чем некоторая линейная функция, асимптотически (или, что еще более мучительно, что существуют некоторые N и c,st для всех n> N, cn превосходит время работы алгоритма).
Это не так уж и плохо: O, o, Omega, просто расскажу вам об оценках проблемы.Затем вы можете говорить о границах для лучшего или худшего случая и так далее.Например, большинство алгоритмов сортировки будут в лучшем случае O (n).Вы можете установить границы для наихудшего случая, которые также являются границами для всех случаев.Тета - это специальное обозначение: Тета (f) означает O (f) и Омега (f), что означает, что граница жесткая и не может быть улучшена.Это точное утверждение.
Алгоритм, который работает намного лучше на некоторых входах, так что у других не будет привязки к тэте, но вы всегда хотели бы найти такой, когда говорите о конкретном входе.Как правило, не так уж сложно сложить утверждения о O-границах в утверждение Theta об алгоритме, ограниченном, например, его наихудшим входным сигналом.
Итак, каждый алгоритм имеет сложность, вы просто можете попытаться выявить или доказатьЭто.Вы хотите получить наименьшие возможные верхние границы (нажмите O) и наибольшие нижние границы.Доказательство конкретных случаев алгоритма или усреднение по всем входным данным также часто дает вам интересную и полезную информацию.