如何找到算法的顺序?

时间:2014-09-23 06:07:03

标签: java big-o nested-loops

我必须找到订单或这些算法。计算与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 ),但我对这个答案并不太自信。帮助将不胜感激。

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表示法,您可以应用以下内容,您将获得确切的迭代次数:

enter image description here