我必须找到订单或这些算法。计算与n无关。
for (int pass = 1; pass <= n; pass++){
for (int index = 0; index < n; index++){
for(int count = 1; count < 10; count++){
}
}
}
第二部分是我应该用内循环中的n替换10。我觉得两者都是O(n 3 ),但我对这个答案并不太自信。帮助将不胜感激。
答案 0 :(得分:3)
在内部循环中将10
替换为n
后,它将为O(n3)
,因为您有三个嵌套循环,所有这些循环都依赖于n
。
因为它现在是,它是O(n2)
,因为内部循环有十次迭代需要一个恒定的时间,与n
无关。
答案 1 :(得分:2)
你正在运行每个循环n次(在将n放入第3循环之后)。循环嵌套在3个级别上,因此您将执行最内层循环n 3 次中的指令。
你的回答是正确的:它是O(n 3 )。它实际上是Θ(n 3 ),因为下限和上限都是n 3 。
在没有替换第3个循环的情况下,答案是O(n 2 )(或Θ(n 2 )),因为最内部迭代的数量是每次外部迭代。
答案 2 :(得分:0)
使用Sigma表示法,您可以应用以下内容,您将获得确切的迭代次数: