假设m <= n
,您可以将O(nm)
缩减为O(n)
吗?
我不这么认为,因为m
可以等于n
对于m < n
,我认为O(nm)
可以缩减为O(n)
,因为m
严格小于n
因此变得微不足道当n
接近无穷大
我在上述假设中是否正确?如果是这样,为什么?什么是更正式的表现方式?
答案 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可以是0
到n-1
之间的任何内容。
我们假设m
有界,其价值不会超过C
m <= C
在这种情况下
O(m*n) can be reduced to O(n)
P.S:请阅读plain english big o notaion