Представь, что тебе нужно найти нужную книгу.
📚 Вариант 1 — библиотекарь сразу показывает нужную полку.
📚 Вариант 2 — ты перебираешь каждую книгу одну за другой.
Результат один и тот же.
Но времени уйдет совсем по-разному.
Именно это и описывает сложность алгоритма.
Она показывает не сколько секунд работает программа, а как быстро растет время её работы, когда данных становится больше.
Например:
🟢 O(1) — почти мгновенно. Неважно, 10 элементов или миллион.
🔵 O(log n) — очень быстро. Так работают многие эффективные поиски.
🟡 O(n) — придется пройтись по всем данным один раз.
🟠 O(n²) — становится больно уже на больших объемах. Каждое действие проверяет все остальные.
🤯 Если на 100 элементах всё работает идеально, это ещё ничего не значит.
На миллионе элементов разница между O(n) и O(n²) может оказаться не в секундах...
...а в десятках минут или даже часах.
💡 Поэтому опытные разработчики думают не только о том, чтобы код работал, но и как он будет работать через год, когда пользователей станет в тысячу раз больше.
Иногда одна удачная идея в алгоритме ускоряет программу сильнее, чем покупка более мощного сервера. 🚀
👇 А как думаешь, что важнее на старте проекта?
🔥 Просто заставить код работать.
⚡️ Или сразу думать о производительности?