a для l oop должен иметь код выполнения внутри l oop, чтобы считаться o (n)? - PullRequest
0 голосов
/ 13 апреля 2020
function doNothing(n) {
  for (let i = 0; i < n; i++);
}

a для l oop, который ничего не значит как O (n)? Или это будет постоянное время?

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Значение для l oop не «ничего не делает», оно увеличивает переменную i на единицу на каждой итерации пять раз. Это, конечно, игнорирует тот факт, что компилятор может полностью удалить этот код.

Таким образом, для l oop for (let i = 0; i < n; i++); есть O (N). В вашем случае, однако, с for (let i = 0; i < 5; i++);, так как вы делаете только пять вещей, что является постоянным объемом работы, его O (1) (ie 5 ∈ O (1)), но помните, что пять - это константа, а не потому, что l oop ничего не делает.

0 голосов
/ 13 апреля 2020

Это постоянное время. Поскольку i всегда будет запускаться с 0 to 5.

Временная сложность вышеуказанного фрагмента кода будет O(1).

...