這源於編寫程序到find the median of two sorted arrays,大小分別爲m
和n
,時間複雜度爲O(log(m + n))
。帶兩個變量的Big-O符號
我可以找出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
,我們可以說0123'具有相同的推理嗎?
感謝David的回答。 這也是維基百科上提及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))."
所以你說O(log(n^a))= O(log(n))?抱歉,我無法真正理解這個問題。 –
@GiorgiNakeuri是的,假設big-O符號將* a *> 0視爲常量,那些實際上是相同的函數類。 –
對不起:)我正在看這個,看到像O(n^a)= O(n)的東西。應該睡一會兒。當然,記錄是真的。 –