我理解当你将两个时间复杂度相乘时,你只需像往常一样将它们相乘,例如n log n
的时间复杂度乘以n
的时间复杂度会给你一个时间复杂度{ {1}}。
但是哪些界限发挥作用?因此,如果(n^2) log n
是上限而n log n
也是上限,那么它们的乘积会是什么样的约束?对于下界上限和紧束缚的其他组合会是什么? (例如,上限x紧密绑定,上限x下限和紧密绑定x下限。)
感谢您的帮助。
答案 0 :(得分:1)
这是一个纯粹的数学问题:
f(x)
O(g(x))
当且仅当存在M
,x0
时才|f(x)| <= M*|g(x)|
x > x0
。你会在大多数基本的复杂性书籍中看到这一点。
假设f(x)
为O(F(x))
而g(x)
为O(G(x))
。然后|f(x)| <= M_f * |F(x)|
适用于所有x > x0F
和|g(x)| <= M_g * |G(x)|
适用于所有x > x0G
。
|f(x) * g(x)| = |f(x)| * |g(x)| <= M_f * M_g * |F(x)| * |G(x)|
的 x > max(x0F, x0G)
因此f(x) * g(x)
为O(F(x) * G(x))
且复杂性会成倍增加(将M = M_f * M_g
和x0 = max(x0f, x0g)
应用于定义大O)
答案 1 :(得分:0)
因此,如果n log n是上限而n也是上限,那么它们的乘积会是什么样的约束?
上限。查看正式分析的任何好的教科书答案;将这两个上限相乘的直观含义是“如果你最多只需 n lg n ,那么成本最多只需 n ,然后你最多执行 n ²lg n 工作“。
upperbound×紧密绑定
紧束缚是上限和下限,所以这是一个上限。
紧紧束缚×下限
......并且通过相同的推理,这是一个下限。
upperbound×lowerbound
没有一般规则。假设您最多 n 次执行至少n ²操作。这可能根本不起作用,或指数量,或任何更大的。