如何证明大 O 符号

How to prove Big O notation

在我的算法 class 中,我们正在讨论大 O 符号,我无法证明这个示例问题:

证明f(n) = 3n lg n + 10n + lg n + 20 = O(n lg n)

详细信息将不胜感激。

所有你需要证明的是对于一些 M 和 X0:
M n lg n >= 3n lg n +10n + lg n + 20 对于所有大于 X0

的 n

4 对 M

来说很简单

我相信您可以计算出上述不等式成立的一些 x0,然后轻松证明它对所有大于 X0 的 n 都成立

将4代入
有助于简化上述 (n-1)lg n >= 10n + 20

一旦任何 n 足够大,就应该清楚 lg n > 1,因此 n 的任何增加都会使右边增加 1,左边增加 1 以上。

Big O 表示法是一种渐近表示法,它都是关于情况的近似值(最差、最佳和中间情况)。
在您的示例中,nlgnnlgn 增长得更快,而且常数值不相关,在这种近似值中可以忽略。
因此,复杂度为 O(nlgn).