Мне пришлось определить большую сложность этого фрагмента кода. Я думал, что ответ nlogn, но, по-видимому, его n. Может ли кто-нибудь объяснить, почему это так?Какова сложность этого фрагмента кода
void funct(int n)
{
for (int i = n; i > 0; i /= 2)
for(int j = 0; j < i; j++)
printf("%d\n", j%2);
}
Это немного сложнее, если учесть, что 'n' не является степенью 2, но результат будет таким же. Тем не менее, наконец, кто-то с правильным подходом и без размахивания руками :-) – mastov