int sum = 0;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= i*i; j++)
sum++;
这种复杂性是1 + 2^2 + 3^2 + 4^2 ... + N^2
吗?如何用big-o表示法表示它?
答案 0 :(得分:6)
答案 1 :(得分:1)
直截了当地使用Sigma表示法:
答案 2 :(得分:1)
另一种看待它的方法是使用“最坏情况”分析。 最初,我们有:
for
循环将运行N
次for
循环将运行i*i
次这可能令人困惑,因为i
似乎正在根据外部for循环进行更改。
但是,在“最坏情况”情景中,i
获得的最大值为N
。
因此,在我们的分析中,只需替换N
而不是i
。
现在我们有:
for
循环将运行N
次for
循环将运行N*N
次这种情况的时间复杂性当然是O(N³)。
答案 3 :(得分:-1)
您可以随时使用直观的方式。
。 。
你可以轻松看到这个模式。它是(n2)*(n-1)因此它的大o应该是O(n3)