Начав изучать сложность, я борюсь с этим:
void what(int n) {
int i;
for (i = 1; i <= n; i++) {
int x = n;
while (x > 0)
x -= i;
}
}
Ну, первый для цикла явно O(n)
. Первая итерация O(n)
, вторая - O(n/2)
.. и, как я полагаю, log(n)
раз?
Это означает O(n) * O(log(n)) = O(n * log(n)) complexity
. Правильно ли я понял?
Изменить: (не дубликат) Я знаю, что такое Big O. Я спросил правильную оценку в конкретном случае.