【发布时间】:2021-06-23 08:43:04
【问题描述】:
我想知道这个算法的复杂度,我在 O(mn) 和 O(mn + n) 之间感到困惑:
i = 1; j=1;
while(j <= n)
{
if(i <= m) i++;
else
{
j++; i=1;
}
}
感谢您的帮助!
【问题讨论】:
-
代码有
O(mn)complexity,和O(mn+n)complexity一模一样 -
我们对 O 使用了奇怪的表示法。我们有时写 f = O(g(n)),但实际上它不是完美的表示法,因为 O(g(n)) 是一组函数,当说 f 是 O(g(n)) 时,我们的意思是 f 属于该集合。现在,集合 O(mn) 和 O(mn + n) 是同一个集合
-
O(mn) 与 O(mn+n) 相同,因为我们不关心时间或资源的附加增加。
-
是的,我就是这么想的,但是当我们举个例子时:n=3 和 m=2,总共有 nm+n=9 次迭代,不等于 mn=6
-
@Byomi:函数的复杂性与函数的值无关。这是关于增长率
标签: c algorithm time-complexity complexity-theory code-complexity