更大的是:O(mn)OR O((m ^ 2)/ n)?

时间:2013-10-25 09:54:31

标签: algorithm math runtime big-o time-complexity

我有一个这个顺序的算法: O((m ^ 2)/ n)+ O(mn)

我想知道:它等于 O(mn)

O((m ^ 2)/ n)> O(mn) OR O((m ^ 2)/ n)< O(mn) ???

2 个答案:

答案 0 :(得分:11)

您应该说复杂性为O(m^2/n + mn)

让我们看看它们何时相等:

(m^2)/n = mn
m^2 = m(n^2)
m = n^2

所以,如果m = n^2,他们是平等的,
m > n^2m^2/n占主导地位时,
m < n^2时,mn占主导地位。

因此,两者都不会比另一个更大,因此我们也无法取消。

答案 1 :(得分:0)

从尺寸上讲,它们无法进行比较。如果m和n的单位相同,则说UNIT

但是(m ^ 2)/ n是在UNIT中测量的,而mn是在UNIT ^ 2或UNIT-Squared中测量的。

(m^2)/n < mn

如果您选择m = n,则m^2/n将为n

这意味着m和n的顺序相同(或相同),复杂度为O(mn)

如果m和n的顺序不同,

 if m^2 < n, then it will be O(mn)
 if m^2 > n, then it will be O(m^2/n)