Встречается на собеседованиях • сегодня

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

O(1) – константная сложность. Время выполнения не зависит от размера входных данных.
Пример: доступ к элементу массива по индексу.

javascript
const arr = [1, 2, 3];
console.log(arr[0]); // O(1)

O(n) – линейная сложность. Время растёт пропорционально размеру входных данных.
Пример: перебор массива.

javascript
for (let i = 0; i < arr.length; i++) { // O(n)
  console.log(arr[i]);
}

O(log n) – логарифмическая сложность. Время растёт логарифмически (например, бинарный поиск).

O(n²) – квадратичная сложность. Время растёт квадратично (например, вложенные циклы).

javascript
for (let i = 0; i < n; i++) { // O(n²)
  for (let j = 0; j < n; j++) {
    console.log(i, j);
  }
}

O(2ⁿ) – экспоненциальная сложность. Время удваивается с каждым увеличением входных данных (например, рекурсивный Фибоначчи без мемоизации).

O(n!) – факториальная сложность. Наихудший случай (например, перебор всех перестановок).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы