简单的问题。使用m×n矩阵,我正在做一些O(mn)操作。我的问题是O(mn)是否在O(n ^ 2)。看看关于大O的维基百科,我会这么认为,但我总是在复杂边界上非常糟糕,所以我希望有人可以澄清。
答案 0 :(得分:1)
m * n
为O(n),则 m
为O(n 2 )。
我假设对于矩阵,您可能会m
= O(n)这是列数,而n
是行数。所以m * n
= O(n 2 )。但谁知道你的矩阵有多少列。
这完全取决于m
的界限。
答案 1 :(得分:1)
m x n
矩阵,O(mn)意味着您要对矩阵的每个值进行常量工作。
O(n ^ 2)表示对于每一列,您正在进行O(#列)的工作。请注意,此运行时使用行数增加。
所以,最后,问题是m
是否大于n
。如果m>> n,O(n ^ 2)更快。如果m<< n,O(mn)更快。