यह की जटिलता के साथ क्रमशः 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))."
तो आप ओ कहते हैं (लॉग (एन^ए)) = ओ (लॉग (एन))? क्षमा करें मैं वास्तव में सवाल को समझ नहीं सकता। –
@GiorgiNakeuri हां, यह मानते हुए कि बड़े-ओ नोटेशन * ए *> 0 निरंतर के रूप में व्यवहार करते हैं, वे वास्तव में एक ही कार्य वर्ग हैं। –
ओह क्षमा करें :) मैं इसे देख रहा हूं और ओ (एन^ए) = ओ (एन) जैसे कुछ देख रहा हूं। थोड़ा सोना चाहिए। निश्चित रूप से लॉग के साथ यह सच है। –