कुछ एल्गोरिदम जो हम दैनिक उपयोग करते हैं जिनमें ओ (1), ओ (एन लॉग एन) और ओ (लॉग एन) जटिलताएं हैं?
कुछ एल्गोरिदम जो हम दैनिक उपयोग करते हैं जिनमें ओ (1), ओ (एन लॉग एन) और ओ (लॉग एन) जटिलताएं हैं?
जवाबों:
यदि आप प्रश्न में दिए गए समय की जटिलता के साथ एल्गोरिदम / राज्य के समूह के उदाहरण चाहते हैं, तो यहां एक छोटी सूची है -
O(1)
समयO(n)
समयसंक्षेप में, सभी Brute Force Algorithms, या Noob वाले जिन्हें रैखिकता की आवश्यकता होती है, O (n) समय जटिलता पर आधारित होते हैं
O(log n)
समयO(n log n)
समय'लॉग एन' का कारक डिवाइड एंड कॉन्कर को ध्यान में रखकर पेश किया गया है। इनमें से कुछ एल्गोरिदम सबसे अच्छे अनुकूलित हैं और अक्सर उपयोग किए जाते हैं।
O(n^2)
समयइन लोगों को कम कुशल एल्गोरिदम माना जाता है अगर उनके O (nlogn) समकक्ष मौजूद हों। सामान्य आवेदन यहाँ पर Brute Force हो सकता है।
O(log n)
सूची से पहले सूची में स्विच करें O(n)
ताकि सूची सबसे अच्छे से सबसे खराब क्रम में हो। हाहा :)
एक सरल उदाहरण O(1)
हो सकता है return 23;
- जो भी इनपुट है, यह एक निश्चित, सीमित समय में वापस आ जाएगा।
का एक विशिष्ट उदाहरण O(N log N)
एक अच्छा एल्गोरिथ्म (जैसे विलय) के साथ एक इनपुट सरणी को सॉर्ट करना होगा।
एक विशिष्ट उदाहरण यदि O(log N)
बाइसेक्शन द्वारा छांटे गए इनपुट ऐरे में कोई मान दिख रहा होगा।
O (1) - अधिकांश खाना पकाने की प्रक्रियाएं O (1) होती हैं, अर्थात, एक व्यक्ति के लिए (एक डिग्री के लिए) खाना बनाने के लिए अधिक समय होने पर भी इसमें लगातार समय लगता है, क्योंकि आप अपने बर्तन / धूपदान में जगह से बाहर भाग सकते हैं और खाना पकाने को विभाजित करने की आवश्यकता है)
O (logn) - अपनी टेलीफोन बुक में कुछ ढूंढना। बाइनरी खोज सोचो।
O (n) - एक पुस्तक पढ़ना, जहां n पृष्ठों की संख्या है। किसी पुस्तक को पढ़ने में कम से कम समय लगता है।
O (nlogn) - खिचड़ी भाषा तुरंत किसी के बारे में सोच सकती है जो कि हर रोज किया जा सकता है ... जब तक कि आप मर्ज या क्विक सॉर्ट करके कार्ड को सॉर्ट नहीं करते हैं!
मैं आपको कुछ सामान्य एल्गोरिदम की पेशकश कर सकता हूं ...
यह आंतों की प्रतिक्रिया होगी क्योंकि यह होमवर्क / साक्षात्कार के प्रकार की तरह लगता है। यदि आप कुछ अधिक ठोस देख रहे हैं, तो यह थोड़ा कठिन है क्योंकि आम तौर पर जनता को किसी लोकप्रिय एप्लिकेशन के अंतर्निहित कार्यान्वयन (कोर्स का खुला स्रोत) का कोई पता नहीं होगा, और न ही यह अवधारणा "एप्लिकेशन" पर लागू होती है
O (1): शतरंज में सबसे अच्छा अगला कदम (या उस मामले के लिए जाएं)। खेल राज्यों की संख्या के रूप में यह केवल हे (1) है परिमित है :-)
O(1)
नैनोसेकंड जीवित रहूंगा , और आप निश्चित रूप से जानते हैं कि O(1)
सबसे पहले क्या होगा ...
सॉफ़्टवेयर एप्लिकेशन की जटिलता को मापा नहीं जाता है और इसे बड़े-ओ संकेतन में नहीं लिखा जाता है। यह केवल एल्गोरिथ्म जटिलता को मापने और एक ही डोमेन में एल्गोरिदम की तुलना करने के लिए उपयोगी है। सबसे अधिक संभावना है, जब हम ओ (एन) कहते हैं, तो हमारा मतलब है कि यह "ओ (एन) तुलना " या "ओ (एन) अंकगणितीय संचालन" है। इसका मतलब है कि, आप किसी भी एल्गोरिथम या एप्लिकेशन की तुलना नहीं कर सकते।
0 (logn) -बिना खोज, किसी सरणी में शिखर तत्व (एक से अधिक शिखर हो सकते हैं) 0 (1) -इन अजगर एक सूची या एक स्ट्रिंग की लंबाई की गणना करता है। लेन () फ़ंक्शन 0 (1) समय लेता है। किसी सरणी में किसी तत्व तक पहुँचने में 0 (1) समय लगता है। एक स्टैक में पुश ऑपरेशन में 0 (1) समय लगता है। 0 (nlogn) -मगर सॉर्ट। अजगर में छाँटने में समय लगता है। इसलिए जब आप listname.sort () का उपयोग करते हैं तो इसमें समय लगता है।
नोट-हैश तालिका में खोज कभी-कभी टकराव के कारण निरंतर समय से अधिक समय लेती है।
ओ (2 एन )
O (2 N ) एक एल्गोरिथ्म को दर्शाता है जिसकी वृद्धि इनपुट डेटा सेट में प्रत्येक एडिटॉन के साथ दोगुनी हो जाती है। ओ (2 एन ) फ़ंक्शन का विकास वक्र घातीय है - बहुत उथले से शुरू होता है, फिर मौसम के अनुसार बढ़ रहा है। O (2 N ) फ़ंक्शन का एक उदाहरण फाइबोनैचि संख्याओं की पुनरावर्ती गणना है:
int Fibonacci (int number)
{
if (number <= 1) return number;
return Fibonacci(number - 2) + Fibonacci(number - 1);
}
Tower of Hanoi
एक बेहतर उदाहरण होता।