2017-07-25 55 views
0

我想计算下面的代码的时间复杂度:时间复杂度伪代码

for(i=0;i<n;i++){ 
    func(); 
    .   // Other O(1) operations 
    . 
} 

其中FUNC()有一个O(k)的复杂性。

回答

0

那么时间复杂度就是O(k * n)。

+0

你能解释为什么它不能是O(n + k)吗? – user8140261

+1

因为你用O(k)的速度做了n次函数,所以它的O(k * n) – Eddge

+0

@Eddge的时间复杂度和速度是不一样的确切的东西。 –

1

你应该认识到循环的意思,如果你使用

for(int i=0;i<n;i++) 

的循环将被执行n次, 和每一个时代,一个循环将花费O(K)+ O(1)= O (k), 所以总的复杂度将是O(n * k),希望这篇文章能帮助你!