私はここに短いプログラムを持っています:
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回実行されることがわかりました。しかし、loglognを見つける方法がわかりません。内側のループはk*kに依存しているため、明らかにn未満になります。そして、毎回k / 2の場合、nlognになります。しかし、どのようにして答えがlog log nであるかを理解しますか?