私はちょっと混乱しています。私は数時間前にBig O時間の複雑さを研究し、ここですべての記事を読んでいます。このコードの上限であるBig Oとは
int myfunc(int n)
{ int result = 0;
for (int i = 0; i<n; i++)
for (int j = i; j>0; j--)
if (i%j == 0)
result += j;
return result;
}
私はこのコードを私に提示しました。私はこのコードの上限を見つけたいと思います。
ここまで私が学んだことから、これは入れ子にされたループなので、上限はO(n^2)と仮定します。しかし、JはIとリンクしているため、私はこのコードが実際にO(n log n)であるかどうか疑問に思っています。私はO(n log n)の概念を完全に理解していないと言います。しかし、私はO(1)、O(n)、O(log n)、O(n^2)、O(n!)などの他のすべての表記を理解しています。
j'がcricket_007 @両方の 'のn-1 ' –
ありi'と' 'の最大値は、はい私もこれを考えたので、私はあなたのためにあなたに感謝し、(N^2)' 'Oを言うと思います入力 – recurf