algorithm - 具有两个变量的大 O 表示法

标签 algorithm big-o

这源于编写一个程序到find the median of two sorted arrays尺寸mn时间复杂度分别为O(log(m + n)) .

我可以算出 O(log(m) + log(n)) 的解法.是否满足上述时间要求?

我认为这是积极的,因为:

log(m) + log(n) = log(m*n) <= log((m+n)^2) = 2*log(m+n) = O(log(m+n))

换句话说,存在k = 2m0 = n0 = 1 .对于任何 m > m0 and n > n0 , 有 log(m*n) <= k*log(m + n) .

是否存在缺陷,或者我是正确的?

更一般地,给定常量 a , 我们可以说 log(n^a) = O(log(n))同样的道理?


感谢大卫的回答。 Big-O notation也提到了这一点在维基百科上:

"We may ignore any powers of n inside of the logarithms. The set O(log n) is exactly the same as O(log(n^c))."

最佳答案

是的,您在所有方面都是正确的。 Log 增长足够慢,渐近类对内部函数不是很敏感。

关于algorithm - 具有两个变量的大 O 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32907630/

相关文章:

string - 机器学习根据字符串相似度将字符串预处理为数字

c++ - 如何找到给定范围内的整数个数甚至设置位

algorithm - O(N) 与 O(NlogN)

algorithm - 检查排序数组上的算法

java - Java TreeMap firstEntry() 方法的 Big O 的运行时复杂度是多少?

c++ - SUBSEQ spoj 中的错误答案

python - 这是用 Python 编写 Luhn 算法的最有效方法吗?

c++ - 是否有 c++ 源代码/lib 来解决带有矩形 bin(不是正方形)和旋转的 2D Bin Packing?

algorithm - 大 o 复杂度尺度函数 (n+1)^5/4n^2

algorithm - 什么是最严格的渐近增长率