Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: O(log N), logarithmic complexity, Big O notation, binary search, time complexity

Что означает O(log N)?

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

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

O(log N) описывает алгоритмы, время выполнения которых растет логарифмически относительно размера входных данных. Это означает, что при увеличении данных в 10 раз, время увеличивается лишь на константу. Классический пример — бинарный поиск в отсортированном массиве. Такие алгоритмы очень эффективны для больших объемов данных.

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

Что такое O(log N)?

O(log N) — это обозначение логарифмической сложности алгоритма. Оно показывает, что время выполнения алгоритма растет пропорционально логарифму от размера входных данных. В информатике обычно используется логарифм по основанию 2, так как алгоритмы часто делят данные пополам.

Как это работает?

Представьте, что у вас есть отсортированный список из 1000 элементов. Линейный поиск (O(N)) в худшем случае потребует 1000 шагов. Бинарный поиск (O(log N)) потребует всего около 10 шагов (log2(1000) ≈ 10). Каждый шаг алгоритм отбрасывает половину данных, что и дает логарифмический рост.

Пример кода: бинарный поиск

function binarySearch(arr, target) {
  let left = 0;
  let right = arr.length - 1;

  while (left <= right) {
    const mid = Math.floor((left + right) / 2);
    if (arr[mid] === target) return mid;
    if (arr[mid] < target) left = mid + 1;
    else right = mid - 1;
  }
  return -1;
}

Где применяется?

  • Поиск в отсортированных структурах данных (массивы, деревья поиска).
  • Алгоритмы на графах (например, поиск кратчайшего пути с использованием кучи).
  • Работа с базами данных (индексы B-деревьев).

Вывод

O(log N) — это очень эффективная сложность, которую стоит использовать при работе с большими объемами данных, когда требуется быстрый поиск или вставка. Она значительно быстрее линейной (O(N)) и является золотым стандартом для многих алгоритмов.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

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

#O(log N)

#logarithmic complexity

#Big O notation

#binary search

#time complexity

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

  • Аватар

    Python Guru

    Sergey Filichkin

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