这源于将程序编写为find the median of two sorted arrays,其大小分别为 if (mb_check_encoding($value, 'UTF-8')) {
return $value = utf8_encode($value);
}
else {
return $value;
}
和m
,时间复杂度为n
。
我可以找出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 = 2
。对于任何m0 = n0 = 1
,都有m > m0 and n > n0
。
是否有缺陷,或者我是否正确?
更一般地说,给定常数log(m*n) <= k*log(m + n)
,我们可以用相同的推理说a
吗?
感谢大卫的回答。 维基百科上的Big-O notation也提到了这一点:
log(n^a) = O(log(n))
答案 0 :(得分:6)
是的,你在所有方面都是正确的。日志增长得足够慢,渐近类对内部函数不是很敏感。