Тот факт, что сумма целых чисел от 0
до n
равна O(n^2)
, здесь не имеет значения.
Да, вы проходите через цикл ровно O(n)
раз.
Большой вопрос, какой порядок сложности вы предполагаете при добавлении?
Если O(1)
, то да, это линейно. Большинство людей предположит, что сложение равно O(1)
.
Но что, если сложение на самом деле O(b)
(b
- это биты, а в нашем случае b = log n
)? Если вы предполагаете это, то этот алгоритм на самом деле O(n * log n)
(добавляя n
чисел, для представления каждого из которых необходимо log n
бит).
Опять же, большинство людей считают, что сложение равно O(1)
.