带有2个变量的Big-O表示法。给定m <= n,我们可以减少O(nm)吗?

时间:2017-02-12 10:21:32

标签: algorithm big-o

假设m <= n,您可以将O(nm)缩减为O(n)吗?

我不这么认为,因为m可以等于n

对于m < n,我认为O(nm)可以缩减为O(n),因为m严格小于n因此变得微不足道当n接近无穷大

我在上述假设中是否正确?如果是这样,为什么?什么是更正式的表现方式?

3 个答案:

答案 0 :(得分:2)

如果m是一个常数(例如:2)或低于常数,那么你是对的:O(mn) = O(n)

但是因为你写了m < n,我认为m也是无限的,但比n慢。

在这种情况下,你错了。

m = log(n)为例,一切都应该清楚。

O(mn) = O(n*log(n))

O(n)不同。

O(m+n)会出现这种情况,但对O(mn)则不然。

答案 1 :(得分:2)

鉴于m <= n,关于O(mn)的所有内容都是最差的O(n**2)

如果m以常数为界,O(mn)变为O(n)

答案 2 :(得分:1)

您无法将O(m*n)缩减为O(n)。如果m上没有边界条件。

m < n这意味着m可以是0n-1之间的任何内容。

我们假设m有界,其价值不会超过C

m <= C

在这种情况下

O(m*n) can be reduced to O(n)

P.S:请阅读plain english big o notaion