У меня есть простой цикл, как это:
for (int i = 0; i < n; i++) {
// constant time operation
}
Очень легко увидеть, что он имеет временную сложность O(n), но если мы вычислим его, почему он будет 2*n + 2 + c*n
(данный ответ), а не (1+ (n+1) + 2*n + c*n) = (3+c)*n + 2
? Я вижу i++
как 2 операции: сложение и присваивание; таким образом, должно быть 2*n
, а константная операция выполняется n
раз, значит, c*n
.