以下代码片段的复杂性

时间:2016-06-23 12:56:48

标签: time-complexity

我必须为以下代码找到大O:

for(int i=0; i<n; i++) // O(n)
   if(n*f(i)+1>0)      // O(n*log(n))
     for(int j=f(i);j<n;j++) //O(n^2*log(n))
         g(j);               // O(n^3*log(n))

函数f的O是O(log(n)),函数g是O(n)

在评论中我写了我的计算但不确定它们是否正确。

1 个答案:

答案 0 :(得分:0)

enter image description here

然后内循环是(忽略一个):

enter image description here

O(n^2)给出了i < n

外循环启动条件是 enter image description here,其中a是常数= log的基数。指数应该非常小(虽然取决于lambda的值),因此条件应为<< n

因此,复杂性为O(n^3)