me_edu
Алгоритмы и структуры данных: основыШаг 13 из 35 · 0% пройдено
2. Профессиональный практикум: проект, качество и портфолио
3. Атлас программных моделей: данные, архитектура, API и тесты
Сложность (Big O)

Как определить сложность кода

Шаг 13 из 356 минТеория
Цель

Понять основной механизм темы «Как определить сложность кода» без заучивания отдельных терминов.

Как работать

Прочитайте блок один раз целиком, затем вернитесь к схеме или примеру и перескажите идею своими словами.

Критерий

Сформулированное правило, пример применения и одно ограничение метода.

ABYANDТаблица истинностиA BY0 000 101 001 11
Логический вентиль и таблица истинности связывают входы с выходным состоянием.
Опорная идея

Сложность определяют по структуре кода — главное, сколько раз выполняются операции относительно n.

Один проход по данным — O(n):

for (let i = 0; i < n; i++) { // одна операция на элемент }

Вложенные циклы по n — O(n²): для каждого из n элементов снова n операций, итого n·n:

for (let i = 0; i < n; i++) { for (let j = 0; j < n; j++) { // n*n операций } }

Деление задачи пополам на каждом шаге — O(log n): чтобы дойти от n до 1, делений нужно примерно log₂n. Для миллиона это всего около 20 шагов.

Правила оценки: константы отбрасывают (O(2n) = O(n)); из суммы берут самое тяжёлое слагаемое (O(n² + n) = O(n²)); обычно считают худший случай. Кроме времени оценивают и память — сколько дополнительного места нужно алгоритму (пространственная сложность).

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.