У меня есть короткая программа:
Given any n:
i = 0;
while (i < n) {
k = 2;
while (k < n) {
sum += a[j] * b[k]
k = k * k;
}
i++;
}
Асимптотическое время выполнения этого - O (n log log n). Почему это так? Я понимаю, что вся программа будет запущена как минимум n раз. Но я не уверен, как найти журнал регистрации n. Внутренний цикл зависит от k * k, поэтому очевидно, что он будет меньше n. И было бы просто n log n, если бы каждый раз было k / 2. Но как бы вы выяснили, что ответ будет log log n?