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

Big-O notation with 2 variables. Given m <= n, can we reduce O(nm)?

假设m <= n,你能把O(nm)减少到O(n)吗?

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

m < n 的情况下,我认为 O(nm) 可以减少到 O(n) 因为 m 严格小于 n 因此随着 n 接近无穷大

变得微不足道

我的上述假设是否正确?如果是这样,为什么?更正式的展示方式是什么?

如果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) 不是。

根本无法将 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

给定 m <= n,关于 O(mn),你只能说它是最坏的 O(n**2)

如果 m 受常数限制,则 O(mn) 变为 O(n)