0
我想计算下面的代码的时间复杂度:时间复杂度伪代码
for(i=0;i<n;i++){
func();
. // Other O(1) operations
.
}
其中FUNC()有一个O(k)的复杂性。
我想计算下面的代码的时间复杂度:时间复杂度伪代码
for(i=0;i<n;i++){
func();
. // Other O(1) operations
.
}
其中FUNC()有一个O(k)的复杂性。
那么时间复杂度就是O(k * n)。
你应该认识到循环的意思,如果你使用
for(int i=0;i<n;i++)
的循环将被执行n次, 和每一个时代,一个循环将花费O(K)+ O(1)= O (k), 所以总的复杂度将是O(n * k),希望这篇文章能帮助你!
你能解释为什么它不能是O(n + k)吗? – user8140261
因为你用O(k)的速度做了n次函数,所以它的O(k * n) – Eddge
@Eddge的时间复杂度和速度是不一样的确切的东西。 –