我偶然发现了一个不确定时间的循环。这是以下循环:
for(i = 1; i <= n^2; i++){
for(j = 1; j <= i; j++) {
//some elementary operation
}
}
我会争辩说,外部for循环在n ^ 2中运行,内部for循环也将在n ^ 2中运行,因为对于外部循环的每次迭代,我们都执行n ^ 2-(n ^ 2- 1),n ^ 2-(n ^ 2-2),...,n ^ 2。我在这里完全走错了方向吗?
所以时间复杂度为n ^ 4
答案 0 :(得分:0)
这是一个简单的算术级数。
每个新的迭代都增加1。
外循环将执行n ^ 2个操作,这将导致以下顺序:
1 + 2 + 3 + ... + n + ... + n^2 = n^2 (n^2+1) / 2 = O(n^4)
答案 1 :(得分:0)
操作次数为:
1 + 2 + 3 + 4 + 5 + ... + n²
等于(n²*(n²-1))/2。
Big O表示法是O(n ^ 4)。你是对的。