---
title: "Big O простыми словами"
url: https://algopath.pro/ru/blog/big-o-prostymi-slovami
language: ru
summary: "Big O отвечает на один вопрос: вход вырос вдвое, что стало с работой? Пять форм и как читать их в своём коде."
updated: 2026-10-15
---

# Big O простыми словами

**Короткий ответ.** Big O отвечает на один вопрос. Вход вырос вдвое, что стало с работой? При O(1) работа не меняется, при O(log n) растёт на один шаг, при O(n) удваивается, при O(n²) растёт вчетверо. Константы отбрасывают, потому что на больших входах важна только скорость роста.

 

Вся идея Big O в этом. Остальное [нотация](https://ru.wikipedia.org/wiki/%C2%ABO%C2%BB_%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B5_%D0%B8_%C2%ABo%C2%BB_%D0%BC%D0%B0%D0%BB%D0%BE%D0%B5).

 

## Пять форм

 

Удвой вход, и:

 

- **O(1)**: работа не меняется. Обращение по индексу. Взятие по ключу.
- **O(log n)**: работа выросла на один шаг. По миллиону это 20 шагов. По двум миллионам 21.
- **O(n)**: работа удвоилась. Один проход по всему.
- **O(n log n)**: чуть больше, чем удвоилась. Любая нормальная сортировка.
- **O(n²)**: работа выросла в четыре раза. Все пары.

 

Пять строк. Они покрывают почти всё, что встретится до университетского уровня. Какую из них разрешает размер входа, собрано в [таблице сложности алгоритмов](/ru/blog/tablitsa-slozhnosti-algoritmov).

 

Каждый термин отсюда есть в [глоссарии](/ru/glossary).

 

Полная таблица по структурам данных это [Big-O cheat sheet](https://www.bigocheatsheet.com/).

 

## Почему константы выбрасывают

 

Цикл, который делает три действия на элемент, это O(n). Ровно как и тот, что делает одно.

 

Ощущается неправильно. В три раза медленнее это в три раза медленнее.

 

Big O отвечает на другой вопрос. Как это ведёт себя при неограниченном росте входа?

 

Тройка остаётся тройкой всегда. Переход от n к n² убегает.

 

При миллионе это 3 миллиона шагов против триллиона. Константа перестаёт быть интересной.

 

## Как считать по своему коду

 

Три правила закрывают почти всё.

 

**Цикл по входу это n.** Цикл внутри цикла это n². Вложенность умножает.

 

**Деление пополам это log n.** Каждый проход выбрасывает половину оставшегося.

 

Деление пополам работает как бинарный поиск. Поэтому же быстры сбалансированные деревья.

 

**Последовательные шаги складываются, а сложение оставляет большее.** Сортировка плюс проход это n log n плюс n. То есть n log n.

 

Ловушка это скрытый цикл.

 

Метод, который сканирует строку внутри цикла, делает всё квадратичным. Вторых скобок на экране нет.

 

Вызвал что-то внутри цикла, спроси, сколько оно стоит.

 

## С памятью так же

 

Тот же вопрос про память. Вход вырос вдвое, сколько ты хранишь дополнительно?

 

Пара переменных это O(1). Копия входа это O(n). Таблица всех пар это O(n²).

 

На практике память кончается именно на ней.

 

Интервьюеры спрашивают обе оценки. Ответишь только про время, потеряешь заработанный балл.

 

Сказать оценку памяти это [разговор вслух](/ru/blog/algoritmicheskaya-sektsiya).

 

## Где нотация врёт

 

Две честные оговорки.

 

На малых размерах побеждают константы.

 

[Сортировка вставками](https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8) обгоняет [быструю](https://ru.wikipedia.org/wiki/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0) примерно до 20 элементов. Настоящие реализации на дне переключаются на неё.

 

Раскладка в памяти тоже важна. Проход по массиву быстрее прохода по списку той же длины.

 

Оба O(n). Один лежит в [кеше](https://ru.wikipedia.org/wiki/%D0%9A%D1%8D%D1%88_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%B0), другой нет.

 

Big O выбирает алгоритм. Измерение выбирает реализацию. Нужны оба, и отвечают они на разные вопросы. [Калькулятор Big O](/ru/big-o-calculator) замерит твою функцию на растущих входах и назовёт её класс.

 

## Где это в треке

 

В [AlgoPath](/ru) сложность стоит на шаге 08 [«Почему одни способы быстрее»](/ru/steps/why-some-ways-are-faster), до всех паттернов.

 

Дальше каждый шаг называет свою цену и ждёт, что ты её прочитаешь.

 

Почему это одна из пяти недостающих вещей, разобрано в статье [почему задачи сложные](/ru/blog/kak-nauchitsya-reshat-algoritmicheskie-zadachi).

 

Первые 33 шага бесплатные.
