Complexity Analyzer v2.0

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

Интерактивный анализатор асимптотической сложности. Сравнивайте Big O, оценивайте сортировки, графовые алгоритмы и решайте рекуррентные соотношения.

Загрузка модуля анализа сложности...
Big O
Нотация
6
Модулей
9+
Сортировок
TLE
Детектор

Зачем знать сложность алгоритмов?

Асимптотический анализ — фундамент компьютерных наук. Он позволяет предсказать, как поведёт себя программа при росте входных данных, выбрать оптимальную структуру данных и успешно пройти собеседование в Яндекс, Google или решить олимпиадную задачу. Для оценки производительности систем используйте также калькулятор производительности.

Big O нотация

Big O описывает верхнюю границу роста числа операций при увеличении n. Это язык, на котором программисты всего мира обсуждают эффективность алгоритмов. Разница между O(n) и O(n²) может означать разницу между миллисекундами и часами работы программы.

O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ)

Мастер-теорема

Метод решения рекуррентных соотношений вида T(n) = aT(n/b) + f(n). Позволяет быстро определить сложность алгоритмов, основанных на принципе «разделяй и властвуй» — от Merge Sort до умножения Штрассена.

T(n) = a · T(n/b) + O(n^c)

Олимпиадное программирование: правило оценки

На олимпиадах и в задачах на Codeforces, LeetCode типичный лимит — 1-2 секунды. Процессор выполняет порядка 10&sup8;–10&sup9; простых операций в секунду на C++. Зная это, можно заранее определить, подойдёт ли выбранный алгоритм.

Если n ≤ 20 — допустим перебор 2ⁿ. Если n ≤ 5000 — подойдёт O(n²). Если n ≤ 10&sup6; — нужен O(n log n) или лучше.

O(n)

n ≤ 10⁷

Линейные алгоритмы: подсчёт, prefix sum, два указателя.
nlogn

n ≤ 10⁵

Сортировка, бинарный поиск по ответу, segment tree.

n ≤ 5000

Динамическое программирование, Floyd-Warshall.

Возможности калькулятора

O(n)

Big O сравнение

Визуальное сравнение 6 основных классов сложности от O(1) до O(2ⁿ) для любого n.

Sort

9 алгоритмов сортировки

Bubble, Insertion, Selection, Merge, Quick, Heap, Counting, Radix и Tim Sort — все в одной таблице.

Graph

Графовые алгоритмы

BFS, DFS, Dijkstra, Bellman-Ford, Floyd-Warshall, Kruskal, Prim — рассчитайте операции по V и E.

ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Big O (O-нотация) — это математический способ описания верхней границы роста функции. В программировании она показывает, как масштабируется время работы алгоритма при увеличении объёма данных. Например, O(n) значит, что время растёт линейно, а O(n²) — квадратично.
Собеседования в Яндекс, Google, VK и других tech-компаниях обязательно включают вопросы по алгоритмам. Интервьюер ожидает, что вы оцените сложность предложенного решения по времени и памяти, и при необходимости предложите более эффективный подход.
В среднем случае Quick Sort, Merge Sort и Heap Sort имеют сложность O(n log n) — это теоретический оптимум для сортировки сравнениями. Counting Sort и Radix Sort могут работать за O(n), но только для данных специального вида (целые числа ограниченного диапазона). На практике Tim Sort (Python, Java) и Introsort (C++) показывают лучшие результаты благодаря оптимизациям.
Мастер-теорема — метод решения рекуррентных соотношений вида T(n) = a·T(n/b) + f(n). Она определяет асимптотику по соотношению log_b(a) и показателя роста f(n). Три случая: если f(n) растёт медленнее — T(n) = O(n^{log_b a}); если одинаково — добавляется множитель log n; если быстрее — T(n) = O(f(n)).
Правило: C++ выполняет ∼10⁸ операций в секунду, Java — ∼10⁷, Python — ∼10⁶. Умножьте количество операций f(n) на ваш n. Если результат меньше лимита × ops/s, алгоритм пройдёт. Например, O(n²) при n = 10⁴ даёт 10⁸ операций = 1 секунда на C++.
При n = 1000: O(n log n) ≈ 10 000, а O(n²) = 1 000 000 — разница в 100 раз. При n = 10⁶ разница уже в 50 000 раз. Именно поэтому для больших данных критически важно использовать эффективные алгоритмы. Разница буквально определяет, завершится ли программа за секунду или за сутки.
Dijkstra (с бинарной кучей, O((V+E) log V)) — для неотрицательных весов. Bellman-Ford (O(V·E)) — если есть отрицательные рёбра. Floyd-Warshall (O(V³)) — когда нужны все пары кратчайших путей. BFS (O(V+E)) — в невзвешенных графах. Выбор зависит от задачи, размера графа и наличия отрицательных весов.

Полезные ресурсы для изучения

Codeforces

Олимпиадные задачи

Крупнейшая платформа соревновательного программирования. Тысячи задач с разборами и оценкой сложности.

LeetCode

Подготовка к интервью

Задачи, которые задают на собеседованиях в FAANG и Яндекс. Каждая с указанием ожидаемой сложности.

CLRS

Введение в алгоритмы

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

СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

Объединить PDF онлайн — без загрузки на сервер

Склейка PDF в браузере через pdf-lib. До 20 файлов, до 50 МБ каждый. Локально, без отправки на сервер (152-ФЗ).

/obyedinit-pdf-onlajn-besplatno

Сжать PDF онлайн — уменьшить размер локально

Сжатие PDF в браузере без потери качества. 3 уровня (object streams, удаление метаданных). До 50 МБ. Через pdf-lib, локально.

/szhat-pdf-onlajn-umenshit-razmer

Разделить PDF на страницы — извлечь нужные онлайн

Разделение PDF на страницы локально: каждая страница отдельным файлом, диапазон или группами. Через pdf-lib, без отправки на сервер.

/razdelit-pdf-na-stranicy-onlajn

JPG в PDF — конвертер с объединением

Конвертация JPG/PNG в PDF в браузере: до 30 картинок в один документ. Форматы A4/A3/Letter или подгонка под изображение.

/jpg-v-pdf-konverter

Повернуть страницы PDF онлайн

Поворот всех или указанных страниц PDF на 90/180/270° за миллисекунды. Lossless. Через pdf-lib, без отправки на сервер.

/povernut-pdf-stranitsy-onlajn

Водяной знак на PDF онлайн (кириллица)

Нанесение текстового знака («КОНФИДЕНЦИАЛЬНО», «ЧЕРНОВИК») на все страницы PDF. Поддержка русского текста через Canvas. 4 положения, регулировка прозрачности.

/dobavit-vodyanoj-znak-na-pdf

Нумерация страниц PDF онлайн

Проставьте номера страниц PDF в браузере: 4 формата, 6 положений, пропуск титульной, кастомный старт. Поддержка кириллицы. Через pdf-lib + Canvas.

/numerovat-stranitsy-pdf-onlajn

PDF в JPG / PNG — конвертер страниц

Рендеринг каждой страницы PDF в картинку через pdfjs-dist (Mozilla). 4 уровня качества: 96 / 150 / 300 DPI и lossless PNG. До 50 МБ.

/pdf-v-jpg-konverter-onlajn

Извлечь текст из PDF онлайн

Извлечение текста из PDF в браузере через pdfjs-dist (Mozilla). Plain text, с разделителями страниц или JSON. Файлы не уходят на сервер.

/extract-text-iz-pdf-onlajn

Сжать JPG до 100 КБ для документов

Сжатие JPG до точного размера в КБ (50, 100, 200, 500, 1000) через бинарный поиск quality. Госуслуги, ЕГЭ, банки. Через browser-image-compression.

/szhat-jpg-onlajn-do-100kb

Удалить EXIF из фото — GPS и метаданные

Удаление EXIF (геолокация, модель камеры, дата) из JPEG. Сначала показывает что внутри, потом удаляет. 152-ФЗ. В браузере, без отправки.

/udalit-exif-iz-foto-online

Изменить размер фото в пикселях

Изменение размера JPG/PNG/WebP с сохранением пропорций. 6 пресетов (Full HD, HD, 1080×1080, 9:16). Через Canvas API, без сервера.

/izmenit-razmer-foto-onlajn-px-mb

WebP в JPG / PNG — конвертер онлайн

Конвертация WebP → JPG / PNG в браузере. До 30 файлов одновременно. Через Canvas API, без сервера. Поддержка Госуслуг и старых форм.

/webp-v-jpg-png-konverter

Повернуть фото — точно по градусам

Поворот картинки на любой угол (90°/произвольный) с превью. Цвет фона для уголков при произвольных углах. JPG/PNG/WebP. Через Canvas.

/povernut-foto-onlajn-besplatno

Обрезать фото — точная обрезка

Обрезка изображений с интерактивным выделением области мышью. 7 пресетов соотношений: 1:1, 4:3, 3:2, 16:9, 9:16, 3×4 паспорт. Через Canvas.

/obrezat-foto-onlajn-pixelno-besplatno
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.