Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Math: time, complexity

Чем отличается алгоритм со сложностью O(n log n) от алгоритма со сложностью O(n²)?

Вопрос проверяет понимание различий в скорости роста алгоритмов и их практического влияния.

Короткий ответ

Алгоритм O(n log n) растёт значительно медленнее, чем O(n²), при увеличении размера входных данных. На малых данных разница может быть незаметной, но на больших — становится критичной. Квадратичные алгоритмы быстро становятся слишком медленными, тогда как O(n log n) остаётся приемлемым.

Длинный ответ

Разница между O(n log n) и O(n²) особенно важна при работе с большими объёмами данных.

Определение

  • O(n log n) — сложность, характерная для эффективных алгоритмов сортировки и деления задачи на части.

  • O(n²) — сложность, возникающая при вложенных циклах по всем данным.

Как растёт время выполнения

  1. При увеличении n в 10 раз:

    • n log n увеличивается примерно в 10–15 раз,

    • n² увеличивается в 100 раз.

  2. Разрыв растёт экспоненциально.

Пример сравнения

# O(n log n) — сортировка
sorted(data)

# O(n^2) — попарное сравнение
for i in range(len(data)):
    for j in range(len(data)):
        pass

Практические последствия

  • O(n²) допустим только для:

    • малых входных данных,

    • простых учебных задач.

  • O(n log n) подходит для:

    • больших массивов,

    • продакшн-систем,

    • аналитических задач.

Вывод

Алгоритмы O(n log n) масштабируются значительно лучше, чем O(n²), и почти всегда предпочтительны для реальных систем.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Math

    Math

Ключевые слова

#time

#complexity

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.