2015-10-02 7 views
8

यह की जटिलता के साथ क्रमशः m और n आकार के साथ एक प्रोग्राम लिखने से find the median of two sorted arrays पर शुरू होता है।बिग-ओ नोटेशन दो चर के साथ

मैं 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 को देखते हुए, क्या हम एक ही तर्क के साथ 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))."

उत्तर

6

हाँ, आप सभी मामलों में सही कर रहे हैं। लॉग धीरे-धीरे बढ़ता है कि एसिम्प्टोटिक कक्षा अंदर के फ़ंक्शन के प्रति बहुत संवेदनशील नहीं है।

+0

तो आप ओ कहते हैं (लॉग (एन^ए)) = ओ (लॉग (एन))? क्षमा करें मैं वास्तव में सवाल को समझ नहीं सकता। –

+1

@GiorgiNakeuri हां, यह मानते हुए कि बड़े-ओ नोटेशन * ए *> 0 निरंतर के रूप में व्यवहार करते हैं, वे वास्तव में एक ही कार्य वर्ग हैं। –

+1

ओह क्षमा करें :) मैं इसे देख रहा हूं और ओ (एन^ए) = ओ (एन) जैसे कुछ देख रहा हूं। थोड़ा सोना चाहिए। निश्चित रूप से लॉग के साथ यह सच है। –

संबंधित मुद्दे