Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: time complexity, Big O notation, linear complexity, O(n)

Что такое линейная сложность? Чему соответствует O(n)?

Проверяет понимание линейной сложности O(n) как базовой концепции анализа алгоритмов и оценки времени выполнения.

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

Линейная сложность O(n) означает, что время выполнения алгоритма растет прямо пропорционально размеру входных данных n. Например, если на входе 10 элементов, алгоритм делает 10 операций, а на 100 элементах — 100 операций. Это типично для простого перебора массива в поиске значения.

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

Что такое линейная сложность O(n)?

Линейная сложность — это одна из базовых оценок времени работы алгоритма, обозначаемая как O(n). Она означает, что количество операций, выполняемых алгоритмом, растет прямо пропорционально размеру входных данных n. Если входные данные увеличиваются в 10 раз, время выполнения также увеличивается примерно в 10 раз.

Примеры алгоритмов с O(n)

Самый простой пример — поиск элемента в неотсортированном массиве (линейный поиск). Алгоритм проходит по каждому элементу, пока не найдет нужный. В худшем случае (если элемента нет) он проверит все n элементов.

function linearSearch(arr, target) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === target) {
      return i;
    }
  }
  return -1;
}

Другие примеры: подсчет суммы элементов массива, нахождение максимального значения, копирование массива.

Как отличить O(n) от других сложностей?

  • O(1) — константная сложность, время не зависит от n (например, доступ по индексу массива).
  • O(log n) — логарифмическая сложность (бинарный поиск).
  • O(n^2) — квадратичная сложность (вложенные циклы).

Линейная сложность — это золотая середина: она хуже константной, но лучше квадратичной. На практике O(n) часто является приемлемой для задач, где n не слишком велико (до миллионов элементов).

Вывод

Понимание O(n) необходимо для оценки производительности алгоритмов, особенно при работе с большими объемами данных. Линейная сложность встречается повсеместно: от простых циклов до обработки списков и файлов. Знание этой концепции помогает выбирать эффективные решения и избегать излишне медленных алгоритмов.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

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

#time complexity

#Big O notation

#linear complexity

#O(n)

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию