Big O Theory-三重嵌套循环

时间:2014-01-28 03:55:07

标签: big-o nested-loops

如果我有以下功能:

for(i=0;i<n;i++)
   for(j=0;j<i*i;j++)
      for(k=0;k<j;k++)
         System.out.println(k);

此函数的big O是否n^5n*((n-1)^2)*((n-1)^2)-1

2 个答案:

答案 0 :(得分:3)

您的函数是O(1),因为它返回第一个k,循环在第一次迭代时结束。假设它没有立即返回,它就像你想象的那样是n ^ 5.

对于每个i,第二个循环循环i^2次,第三个循环循环j次。 因此,对于每个i,它循环i^4次。因此,总数为Sum(i^4) (1..n),即O(n^5)

答案 1 :(得分:0)

正式使用Sigma Notation,您可以通过以下方式推断增长的顺序:

enter image description here