O(mn)是O(n ^ 2)吗?

时间:2016-03-07 23:09:28

标签: time-complexity linear-algebra

简单的问题。使用m×n矩阵,我正在做一些O(mn)操作。我的问题是O(mn)是否在O(n ^ 2)。看看关于大O的维基百科,我会这么认为,但我总是在复杂边界上非常糟糕,所以我希望有人可以澄清。

2 个答案:

答案 0 :(得分:1)

如果m * n为O(n),则

m为O(n 2 )。

我假设对于矩阵,您可能会m = O(n)这是列数,而n是行数。所以m * n = O(n 2 )。但谁知道你的矩阵有多少列。

这完全取决于m的界限。

查看definition of O(n)

答案 1 :(得分:1)

对于m x n矩阵,

O(mn)意味着您要对矩阵的每个值进行常量工作。

O(n ^ 2)表示对于每一列,您正在进行O(#列)的工作。请注意,此运行时使用行数增加。

所以,最后,问题是m是否大于n。如果m>> n,O(n ^ 2)更快。如果m<< n,O(mn)更快。