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

Как соотносятся временная и пространственная сложность алгоритма?

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

Временная сложность мерит число операций, пространственная — объём дополнительной памяти; между ними почти всегда есть компромисс: ускорение покупается памятью и наоборот.

Классические trade-off

  • Мемоизация и кеши: храним результаты вычислений — платим O(n) памяти за ускорение с экспоненты до O(n).
  • Хеш-таблица: поиск за O(1) вместо O(n) ценой O(n) дополнительной памяти.
  • Сортировки: mergesort стабилен и O(n log n), но требует O(n) буфера; heapsort обходится O(1) памяти, но нестабилен и медленнее по константам.

Что считается памятью

  • Глубина рекурсии — тоже пространственная сложность: рекурсивный DFS на дереве глубины h потребляет O(h) стека.
  • In-place алгоритмы тратят O(1) дополнительной памяти, не считая самого входа.

На собеседовании

Уточняйте ограничения: при ограниченной памяти (стриминг, встроенные системы) выбирают менее прожорливый алгоритм даже ценой времени.

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

Время и память обычно обмениваются друг на друга: кеш, мемоизация или хеш-таблица ускоряют алгоритм ценой дополнительной памяти. Не забывайте учитывать стек рекурсии, а при жёстком лимите памяти выбирайте более экономный алгоритм, даже если он медленнее.

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