最坏情况 2 个变量输入的大 (O) 复杂度

Nos*_*gic 2 algorithm big-o

我实现了一个算法,该算法采用 R 行和 C 列的矩阵作为输入。\n我说该算法的最坏情况时间复杂度是\nO(C\xe2\x88\x9aC * R^3)O(C^1.5 * R^3)

\n

现在有人问我,不能简单地将其表示O(R^3)为最坏情况。\n我会说,由于有 2 个输入(不是一个),有时 C 可能很大,有时 R 可能很大,所以我们不能将其减少为简单地O(R^3)说,C 和 R 都应该考虑在内。

\n

我的答案正确吗?\n如果不正确,为什么?

\n

Naa*_*Hai 5

是的,你是对的,在考虑时间复杂度时,你不能简单地忽略任何输入参数。

由于您的情况中的 C 和 R 都是未知的,因此我们需要考虑它们可以是任何值,因此除非指定,否则不能忽略任何值。

在您提到的情况下,时间复杂度必须指定为O(C^1.5 * R^3)

现在请注意,在您的情况下,时间复杂度是由输入参数变化的乘积决定的,因此即使指定一个参数严格大于其他参数,我们也不能忽略这一点。然而,如果增加复杂性,则可以忽略它。

仅举个例子。如果输入:R - 任意数字 C - 任意数字 >= R

在上述情况下

O(R*C) = O(R*C)--> 我们不能忽略任何输入参数

O(R+C) = O(C)--> 众所周知,C 永远大于 R