对于所有这些我必须找出运行时间。for循环运行时间分析java
1.
for (int i = 0; i < n; i+=2)
sum++;
2.
for (int i = 1; i < n; i*=2)
sum++
3.
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
sum++;
4.
for (int i = 0; i < n; i++)
sum++
for (int j = 0; j < n; j++)
sum++
// The above are two loops one after the other, NOT nested
5.
for (int i = 0; i < 2*n; i++)
sum++
6.
for (int i = 0; i < n*n; i++)
sum++;
7.
for (int i = 0; i < n; i++)
for (int j = 0; j < n*n; j++)
sum++;
8.
for (int i = 0; i < n; i++)
for (int j = 0; j < 10000; j++)
sum++;
对于第一个I得到了O(n),第四个得到了O(n^2)。这些是正确的吗?我该怎么做别人?我很困惑第二个。
答案可以用大O或大θ表示。
非常感谢。你能快速解释第二个吗?我仍然对循环运行多少次感到困惑。 – user3558088
'我'每次翻倍。所以,如果你把'n'加倍,你可以再循环1次。 – jh314