誰かが次のループの時間の複雑さを見つける方法を理解するのを手伝ってくれませんか:
for (int j = 1 to n) {
k = j;
while (k < n) {
sum += a[k] * b[k];
k += log n;
}
}
ここで、n 2 / log(n)である解決策を見つけました。
外側のループが n 回かかることは明らかですが、内側のループについては行き詰まっています。n / log n 係数はどこから来たのですか?
用語ごとにフォローしようとしましたが、続けることができませんでした
1st time k = 1,
2nd time k = 1 + log n
3rd time k = 1 + log n + log n // (2 log n)
stuck here :(
パターンを見つけるにはどうすればよいですか、またはそのようなコードの時間の複雑さを得るために従うべき最善の手順は何ですか?