Так вот: чем меньше число в скобках, тем круче алгоритм. Под алгоритмом понимается любой кусок кода. n - это как правило размер данных (размер массива).
В целом сложность алгоритма представляет из себя максимальное количество итераций вашего цикла или циклов в сумме. Например, если надо в массиве найти элемент со значением 7, то сложность такого поиска будет O(n):
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 7) return true;
}
Если у вас цикл в цикле, например, тот же поиск числа в двумерном массиве, то перемножаете количество итераций обоих циклов и получается O(n * m), m - количество итераций второго цикла:for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] === 7) return true;
}
}
На деле такое количество итераций будет только если элемента в массиве нет или он на последней позиции. Но учитываем всегда самый плохой вариант. У сортировки пузырьком 2 вложенных цикла над одним массивом, поэтому ее сложность O(n * n) = O(n^2). Вычислительная сложность обычно спрашивается на собеседованиях и объясняется в универах, после которых забывается. Но вот я (и не только) постоянно прикидываю сложность и учитываю ее у уже реализованных алгоритмов, например, метод
Array.sort(). Вам тоже рекомендую - это не сложно.На фронте достаточно часто игнорирование сложности своего и чужих алгоритмов в обработчиках событий, таких как change, mousemove, mouseover приводит к торможениям.