Big-O表示法计算,O(n)*O(log n)= O(n log n)

And*_*ome 3 algorithm big-o

我需要设计一个能够在给定的O表示法中进行一些计算的算法.自从我上次用O表示法计算已经有一段时间了,我对如何将不同的O符号加在一起感到有些困惑.

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

O(n) + O(n) = O(2n) = O(n)

O(n) * O(log n) + O(n log n) = O(n log n) + O(n log n) = O(n log n)
Run Code Online (Sandbox Code Playgroud)

这些是正确的吗?我忽略了哪些其他规则?

phi*_*hag 10

规则乘法是非常简单的:

O(f) * O(g) = O(f * g)
Run Code Online (Sandbox Code Playgroud)

O如果您希望它适用于任意函数,则两个项的总和更难计算.
但是,如果f ? O(g),那么f + g ? O(g).

因此,您的计算是正确的,但您的原始标题不是;

O(n) + O(log n) = O(n)
Run Code Online (Sandbox Code Playgroud)