बिग ओ अंकन में बिग और ओ क्या है? मैंने परिभाषाएँ पढ़ी हैं और यह नहीं बताता कि ओ को 'ओह' के रूप में क्या कहा जाता है । उदाहरण के लिए - मैं समझता हूं कि O (n) एक रैखिक एल्गोरिथ्म की जटिलता है जहां n संचालन की संख्या हो सकती है। लेकिन एक हे क्या है ?
बिग ओ अंकन में बिग और ओ क्या है? मैंने परिभाषाएँ पढ़ी हैं और यह नहीं बताता कि ओ को 'ओह' के रूप में क्या कहा जाता है । उदाहरण के लिए - मैं समझता हूं कि O (n) एक रैखिक एल्गोरिथ्म की जटिलता है जहां n संचालन की संख्या हो सकती है। लेकिन एक हे क्या है ?
जवाबों:
खैर, मेरा अनुमान आदेश होगा, जो विकिपीडिया के साथ मेल खाता है ।
संपादित करें: (मेरा अपना (किसी भी सुधार की सराहना)) जर्मन विकिपीडिया लेख से अनुवाद
कैपिटल लेटर O (उस समय वास्तव में एक कैपिटल ओमीक्रॉन) के प्रतीक के रूप में (जर्मन: "ऑर्डनंग वॉन") आदेश के ) का उपयोग पहली बार जर्मन संख्या सिद्धांतकार पॉल बच्चन ने विश्लेषणात्मक सिद्धांत पर अपनी पुस्तक के दूसरे अंक में किया था। 1894 में। संकेतन ने एक और जर्मन नंबर सिद्धांतकार, एडमंड लैंडौ के काम के कारण लोकप्रियता हासिल की, जिसे यह नामकरण आज के साथ व्यापक रूप से जुड़ा हुआ है, विशेष रूप से जर्मन शब्दावली में।
"बिग" का अर्थ है "पूंजी", और "ओ" का अर्थ है, "जटिलता का क्रम"। इसलिए "जटिलता के आदेश" को ओ (एफ (एक्स)) के रूप में लिखने के सम्मेलन के कारण नामित किया गया है, उदाहरण के लिए, एक कैपिटल लेटर 'ओ' या 'बिग ओ' के साथ। कोई भी इसके बारे में ज्यादा बात नहीं करता है क्योंकि 'हर कोई' इसका मतलब समझता है, और इसे समझने से वास्तव में जटिलता विश्लेषण को समझने में मदद नहीं मिलती है।
जटिलता विश्लेषण की समझ के लिए, मुझे लगता है कि topgun_ivard द्वारा पोस्ट किया गया लिंक शुरू करने के लिए एक अच्छी जगह है। डेटा संरचनाओं या एल्गोरिदम को कवर करने वाली एक अच्छी परिचयात्मक पाठ्यपुस्तक भी मदद कर सकती है।
ओ ऑर्डर के लिए खड़ा है।
यह मूल रूप से जर्मन गणितज्ञ पॉल बाचमन द्वारा 1894 में प्रकाशित संख्या सिद्धांत डाई एनाटिसिल्के जेहलेंटेहेरी पर उनकी पुस्तकों के दूसरे खंड में पेश किया गया था । वह नोट करता है, एक सूत्र के बाद जहां वह पहली बार नोटेशन का उपयोग करता है:
(...) वेन वीर डर्च डेस ज़ीचेन ओ (एन) आइंड ग्रोसे ऑसड्रुकन, बेरेन ऑर्गन को बेज़ुग औफ एन डाई ऑर्डनंग वॉन एन नीच यूटचेरिटेट (...)
मेरा अनुवाद:
(...) जहां संकेतन O (n) के साथ हम एक परिमाण को इंगित करते हैं जिसमें n के संदर्भ में आदेश n के क्रम से अधिक नहीं है (...)
दूसरों ने जो कुछ कहा है, उसके विपरीत, उनके पाठ में कुछ भी इंगित नहीं करता है कि यह वास्तव में एक ग्रीक राजधानी ओमिक्रॉन है। वह ग्रीक और लैटिन दोनों वर्णों का भरपूर उपयोग करता है, इसलिए वास्तव में बताने का कोई तरीका नहीं है। उनके निरंतर उपयोग को देखते हुए "ऑर्डनंग एन लॉग एनपाठ में " आदि के यह स्पष्ट है कि यह किसी भी मामले में "ऑर्डनंग" (जर्मन के लिए "आदेश" यदि कोई संदेह था) के लिए खड़ा है, लेकिन यह अभी भी खुला का उपयोग नहीं छोड़ सकता है एक फैंसी ग्रीक ओ।
हालांकि, ओमिक्रॉन की उत्पत्ति की संभावना डोनाल्ड नथ के कारण एक प्रतिगामी है जिसने अपने पेपर बिग ओमिक्रॉन और बिग ओमेगा और बिग थीटा में संबंधित अवधारणाओं के लिए प्रतीकों ओमेगा (ta) और थीटा (Θ) को पेश किया , या संभवतः हार्डी और लिटिलवुड जो पहले एक ओमेगा प्रतीक पेश किया।
मुझे यह लेख पसंद है , उम्मीद है कि आपको यह उपयोगी लगेगा!
लेख के एक भाग का हवाला देते हुए:
बिग ग्रीक लेटर्स
बिग ओ का अक्सर दुरुपयोग किया जाता है। बिग ओ या बिग ओह वास्तव में बिग ओमिक्रॉन के लिए कम है। यह स्पर्शोन्मुख जटिलता की ऊपरी सीमा का प्रतिनिधित्व करता है। इसलिए यदि एक एल्गोरिथ्म हे (n लॉग एन) है तो एक निरंतर c मौजूद है जैसे कि ऊपरी बाउंड cn log n है।
) (N log n) (बिग थीटा) उससे कहीं अधिक कसकर बंधी हुई है। इस तरह के एक एल्गोरिथ्म का अर्थ है कि दो स्थिरांक c1 और c2 मौजूद हैं जैसे कि c1n log n <f (n) <c2n log n।
N (n लॉग एन) (बिग ओमेगा) का कहना है कि एल्गोरिथ्म में cn लॉग एन की निचली सीमा होती है।
अन्य हैं लेकिन ये सबसे आम हैं और बिग ओ सभी में सबसे आम हैं। इस तरह का भेद आमतौर पर महत्वहीन है लेकिन यह ध्यान देने योग्य है। सही अंकन सब के बाद, सही अंकन है।
बिग ओ क्या है?
बिग ओ नोटेशन एक महत्वपूर्ण एल्गोरिथ्म के सापेक्ष जटिलता का वर्णन करना चाहता है जब प्रमुख कारक अनंतता को झुकाते हैं। इस कारण से, आप अक्सर वाक्यांश असममित जटिलता सुनेंगे। ऐसा करने में, अन्य सभी कारकों को नजरअंदाज कर दिया जाता है। यह जटिलता का एक सापेक्ष प्रतिनिधित्व है।
बिग ओ क्या नहीं है?
बिग ओ एक एल्गोरिथ्म का प्रदर्शन परीक्षण नहीं है। यह भी उल्लेखनीय या सार है कि यह अन्य कारकों को अनदेखा करता है। सॉर्टिंग एल्गोरिथ्म जटिलता आमतौर पर प्रमुख कारक के रूप में क्रमबद्ध किए जा रहे तत्वों की संख्या तक कम हो जाती है। यह ठीक है, लेकिन यह इस तरह के मुद्दों को ध्यान में नहीं रखता है:
मेमोरी उपयोग: एक एल्गोरिथ्म दूसरे की तुलना में बहुत अधिक मेमोरी का उपयोग कर सकता है। स्थिति के आधार पर यह पूरी तरह से अप्रासंगिक से महत्वपूर्ण तक कुछ भी हो सकता है; तुलना की लागत: यह हो सकता है कि तत्वों की तुलना करना वास्तव में महंगा है, जो संभवतः एल्गोरिदम के बीच किसी भी वास्तविक दुनिया की तुलना को बदल देगा; मूविंग एलिमेंट्स की लागत: कॉपी करने वाले तत्व आम तौर पर सस्ते होते हैं, लेकिन ऐसा जरूरी नहीं है; आदि।
"f (x) जी का बड़ा है (x)"
यह कार्यों के विकास की भविष्यवाणी करने का एक गणितीय तरीका है।
पूर्णांक या समुच्चय के सेट से वास्तविक संख्याओं के समूह में f और g को कार्य करते हैं। हम कहते हैं कि f (x) O (g (x)) है यदि स्थिरांक C और k ऐसे हैं जो f (x) हैं। <= सी | जी (एक्स) | जहाँ भी x> के।
आप इसे "f (x) के रूप में पढ़ेंगे g (x) का बड़ा-ओह"
जर्मन गणितज्ञ एडमंड लैंडौ के बाद बिग-ओ को कभी-कभी एक लैंडू प्रतीक कहा जाता है। मुझे नहीं लगता कि यह उससे परे किसी भी चीज के लिए खड़ा है। आपके पास भी इसी तरह के बड़े-ओमेगा और बड़े-थेटा नोटेशन हैं। प्रतीकों के रूप में मनमाने ढंग से हमेशा के रूप में थीटा का उपयोग कर रहे हैं अपने त्रिकोण में कोणों को दर्शाने के लिए आपके हाई-स्कूल प्लानर ज्यामिति वर्ग में था।
सुधार @ back2dos ने आदेश के संदर्भ में O के लिए एक संतोषजनक स्पष्टीकरण प्रदान किया है। अच्छा काम। उसका जवाब देखिए।
डोनाल्ड नुथ ने इसे कंप्यूटर कार्यक्रमों की जटिलता का अध्ययन करने के लिए लागू किया था।
यदि आप उस कारण का पता लगाना चाहते हैं जिसका उपयोग संकेतन के लिए किया गया था, तो आपको पढ़ना चाहिए
1892 से पॉल बाचमन द्वारा "एनालिटिसि ज़हलेंटेहेरी"
संपादित करें: मुझे पता है कि मैं गलत हूं। फिर भी, शायद यह किसी को अपने प्रतीकों को सीधा रखने में मदद करता है, इसलिए मैं इसे हटाने नहीं जा रहा हूं।
वास्तव में, यह नहीं लैटिन पत्र ओह , यह ग्रीक अक्षर है ऑमिक्रॉन । दुर्भाग्य से, उन दोनों के पास एक ही ग्लिफ़ है, इसलिए, समय के साथ, मूल संस्करण दूषित हो गया, और अब यह ओह है ।
प्रतीक की पसंद का वास्तव में कोई विशेष अर्थ नहीं है, इसे एक मेमोनी डिवाइस के रूप में चुना गया था :
बस। इसका कोई वास्तविक अर्थ नहीं है, यह सिर्फ शब्दों पर एक नाटक है, यदि आप शब्दार्थ को और अधिक आसानी से याद करने में आपकी सहायता करेंगे।
अद्यतन: मेरे जवाब को साफ करने और अधिक सटीक होने का प्रयास
बिग ओ नोटेशन वहाँ विकास दर के अनुसार कार्यों की विशेषता है। O ऑर्डर के लिए खड़ा है (पहला ऑर्डर n दूसरा ऑर्डर n-squared आदि होने के कारण)। और अगर मैं गलत नहीं हूँ तो यह N तत्वों को दिए गए तरीकों रनटाइम (या स्टोरेज) के लिए सबसे खराब स्थिति होगी। आदेश जितना बड़ा होता है विधि उतनी ही खराब होती है।
उदाहरण के लिए, एक सरणी में एक रिकॉर्ड ओ (1) है (मैं हैश तालिकाओं के कुछ कार्यान्वयन में विश्वास करता हूं जो भी मामला है)। लिंक सूची के अंत में एक मान जोड़ना O (N) होगा क्योंकि आपको तत्व आदि जोड़ने से पहले सूची के अंत में जाना होगा।
यह उत्तर मेरे पहले प्रयास से थोड़ा अधिक सही होना चाहिए :)