PassFront
  1. PassFront
  2. База знаний
  3. Сложность алгоритмов

Что такое нотации Big O, Omega и Theta?

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

Big O описывает верхнюю границу роста («не медленнее, чем»), Omega — нижнюю («не быстрее, чем»), а Theta — точную асимптотику, когда верхняя и нижняя границы совпадают.

Интуиция

  • O(n) — при удвоении входа время растёт не более чем линейно.
  • Ω(n) — алгоритм не может быть быстрее линейного: например, нужно прочитать все n элементов.
  • Θ(n) — рост ровно линейный: функция зажата между двумя линейными оценками.

Пример

Линейный поиск: худший случай O(n), лучший Ω(1) (элемент первый); единой Theta для всех случаев нет, поэтому обычно обсуждают худший случай в терминах Big O.

Детали

  • Константы и младшие члены отбрасываются: O(2n + 10) = O(n) — нотация про рост, а не про секунды.
  • Классы, которые ждут на собеседовании: O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ).

Коротко для собеседования

Big O — верхняя оценка роста, Omega — нижняя, Theta — точная, когда они сходятся. На практике обычно называют худший случай в Big O, но всегда уточняйте, о каком случае речь: у quicksort средний O(n log n), а худший O(n²).

Другие вопросы раздела