计算复杂度顺序

Computational Complexity Order

我有大约 8 种不同时间复杂度的算法,我想知道它们从最慢到最快的顺序。

(Algorith1) O(n^3)
(Algorith2) O(1)
(Algorith3) O(log(n) + n)
(Algorith4) O(nlog(n))
(Algorith5) O(log(n))
(Algorith6) O(n^2 + nlog(n))
(Algorith7) O(n!)
(Algorith8) O(2^n)

我知道最慢和最差的性能是 O(n!),但接下来会发生什么。

不要绘制它们并检查 Big-O!渐近复杂性并不是那么简单,您需要考虑前面所有可能的常数并添加(例如 O(100n + log(n) 仍然等同于 O(n))。这就是说,对于足够大的n 和前面的任意常数:

O(1) << O(log(n)) << O(log(n) + n) << O(nlog(n)) << O(n^2 + nlog(n)) << O(n^3) << O(2^n) << O(n!)