Что такое сложность алгоритма

Ответ

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

Основные виды сложности:

  1. Временная (Time Complexity) — сколько шагов выполнит алгоритм.
  2. Пространственная (Space Complexity) — сколько памяти потребуется.

Примеры нотации Big-O:

  • O(1) — константная сложность (доступ к элементу массива).
  • O(n) — линейная (перебор массива).
  • O(n²) — квадратичная (вложенные циклы).
// O(n) — линейный поиск
function linearSearch(arr, target) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === target) return i;
  }
  return -1;
}

Чем меньше сложность, тем эффективнее алгоритм на больших данных.