बाइनरी सर्च के बड़े-ओ में लॉग बेस 2 क्यों नहीं है?


35

मैं कंप्यूटर विज्ञान एल्गोरिदम को समझने के लिए नया हूं। मैं बाइनरी खोज की प्रक्रिया को समझता हूं, लेकिन मुझे इसकी दक्षता के साथ थोड़ी गलतफहमी है।

तत्वों के आकार में , यह एक विशेष तत्व को खोजने के लिए औसतन n कदम उठाएगा। दोनों पक्षों के आधार 2 लघुगणक को लेने से लॉग 2 ( s ) = n होता है । तो द्विआधारी खोज एल्गोरिथ्म के लिए चरणों की औसत संख्या नहीं होगा लोग इन 2 ( रों ) ?s=2nnlog2(s)=nlog2(s)

बाइनरी सर्च एल्गोरिदम पर यह विकिपीडिया लेख कहता है कि औसत प्रदर्शन । ऐसा क्यों है? क्यों इस संख्या नहीं है लोग इन 2 ( एन ) ?O(logn)log2(n)


जवाबों:


86

जब आप लघुगणक के आधार को बदलते हैं तो परिणामी अभिव्यक्ति केवल एक स्थिर कारक द्वारा भिन्न होती है, जो बिग-ओ संकेतन की परिभाषा से होती है। तात्पर्य है कि दोनों कार्य समान वर्ग के हैं जो उनके स्पर्शोन्मुख व्यवहार के संबंध में हैं।

उदाहरण के लिए जहां सी=1

log10n=log2nlog210=Clog2n
C=1log210

तो और लोग इन 2 n अलग है एक निरंतर द्वारा सी , और इसलिए दोनों कर रहे हैं सच: लोग इन 10 n  है  हे ( लॉग ऑन 2 n ) लॉग ऑन 2 n  है  हे ( लॉग ऑन 10 एन ) सामान्य में लॉग एक n है हे ( लॉग एन ) सकारात्मक पूर्णांकों के लिए और बीlog10nlog2nC

log10n is O(log2n)
log2n is O(log10n)
loganO(logbn)ab 1 से अधिक है।

लघुगणक कार्यों के साथ एक और दिलचस्प तथ्य यह है कि, जबकि निरंतर के लिए है , एन कश्मीर नहीं है हे ( एन ) , लेकिन लोग इन n कश्मीर है हे ( लॉग एन ) के बाद से लॉग n कश्मीर = कश्मीर लॉग एन से जो अलग है लॉग n केवल निरंतर द्वारा कारक kk>1nkO(n)lognkO(logn)lognk=klognlognk


a,b>1e

2
O(logn)

9

Fade2black के उत्तर के अलावा (जो पूरी तरह से सही है), यह ध्यान देने योग्य है कि नोटेशन "लॉग(n)"अस्पष्ट है। आधार वास्तव में निर्दिष्ट नहीं है, और संदर्भ के आधार पर डिफ़ॉल्ट आधार बदलता है। शुद्ध गणित में, आधार लगभग हमेशा माना जाता है (जब तक निर्दिष्ट नहीं किया गया है), जबकि कुछ इंजीनियरिंग संदर्भों में यह हो सकता है 10. कंप्यूटर विज्ञान में, बेस 2 इतना सर्वव्यापी है कि लॉग को आधार माना जाता है। 2. विकिपीडिया लेख कभी भी आधार के बारे में कुछ नहीं कहता है।

लेकिन, जैसा कि पहले ही दिखाया जा चुका है, इस मामले में इसका कोई मतलब नहीं है।


7
यह शायद आगे ध्यान देने योग्य है कि तब जबकि "लॉग (एन)" अस्पष्ट हो सकता है कि "ओ (लॉग (एन))" नहीं है क्योंकि बाद का केवल एक ही अर्थ है, कोई फर्क नहीं पड़ता कि आप किस आधार पर सोच रहे होंगे।
क्रिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.