BigO log(m*n) 和 (m+n) 哪个更好?

jAc*_*OdE 0 algorithm big-o

mn是二维矩阵的二维时,具有给定 Big-O 的搜索算法被认为更快:

  • log(m*n)或者
  • (m+n)或者
  • log(m)*log(n)

rac*_*nit 6

上述简化解释如下:

  1. O(log(m*n))相当于O(log m + log n)

  2. O(m+n)O(log(m)*log(n))本身是简化形式

因为数字的对数小于数字。因此订单将是

O(log(m*n)) < O(log(m)*log(n)) < O(m+n)

即 log(m*n) 是最有效的。

记住它是一个大O。如果您考虑所有可能的输出,那就更好了。