Контент
big-O нотация

OO нотация

\leq

OO (big-O) нотация используется для описания верхней асимптотической границы времени исполнения алгоритма.
В анализе алгоритмов, OO зачастую дает оценку времени выполнения в наихудшем случае, показывая, что алгоритм не будет расти быстрее заданного предела при увеличении размера входных данных.
OO не описывает типичное или среднее время выполнение работы, однако дает верхний предел асимптотического роста.

OO пример:

Время выполнения алгоритма Quicksort имеет верхнюю асимптотическую границу O(n2)O(n^2).
В наихудшем случае, когда на вход подается обратно отсортированный массив (или при постоянном неудачном выборе опорного элемента), время выполнения Quicksort вырастет квадратично относительно размера входа.
Это значит, что асимптотически Quicksort не будет выполнять свою работу медленнее чем O(n2)O(n^2) ни при каких вводных данных.


Ω\Omega нотация

>=>=

Ω\Omega (Omega) нотация используется для описания нижний асимптотической границы исполнения алгоритма.
Ω\Omega задает минимальный асимптотический порядок роста, ниже которого время исполнения алгоритма не может опуститься при увеличении входных данных.

Ω\Omega пример:

Quicksort имеет нижнюю асимптотическую границу Ω(nlogn)\Omega(n \log n), то есть алгоритм не может иметь асимптотический рост менее, чем nlognn \log n.


Θ\Theta notation

\approx

Θ\Theta (Theta) нотация описывает точную (тесную) границу асимптотического роста времени исполнения алгоритма.
Она комбинирует Ω\Omega и OO, описывая насколько быстро растет время исполнения алгоритма для определенного случая.

  • Если O=ΩO = \Omega, тогда Θ=O=Ω\Theta = O = \Omega
  • Если OΩO \neq \Omega, тогда мы описываем по отдельности
    • лучший случай Θ\Theta
    • средний случай Θ\Theta
    • худший случай Θ\Theta

Θ\Theta пример:

Quicksort

Ω(nlogn)O(n2)\Omega(n \log n) \neq O(n^2)

Поэтому:

  • лучший случай Θ(nlogn)\Theta(n \log n)
  • средний случай Θ(nlogn)\Theta(n \log n)
  • худший случай Θ(n2)\Theta(n^2)

Mergesort

Ω(nlogn)=O(nlogn)\Omega(n \log n) = O(n \log n)

Поэтому:

  • Θ(nlogn)\Theta(n \log n) (нет нужды в описании разных случаев)