बिग ओ में ओ क्या है?


23

बिग ओ अंकन में बिग और ओ क्या है? मैंने परिभाषाएँ पढ़ी हैं और यह नहीं बताता कि को 'ओह' के रूप में क्या कहा जाता है । उदाहरण के लिए - मैं समझता हूं कि O (n) एक रैखिक एल्गोरिथ्म की जटिलता है जहां n संचालन की संख्या हो सकती है। लेकिन एक हे क्या है ?


13
यह अंग्रेजी वर्णमाला का 15 वां अक्षर है। यह ग्रीक वर्णमाला में 15 वां अक्षर भी है।
जोएल एथर्टन

1
बस स्पष्ट करने के लिए: आप इस कारण की तलाश कर रहे हैं कि क्यों प्रतीक है जिसका उपयोग किया जाता है (क्यू या ई या कुछ और के बजाय), और क्या मतलब है, यदि कोई है, तो अन्य प्रतीकों पर है?
FrustratedWithFormsDesigner

6
@Joel: वास्तव में, यह ओमिक्रॉन है, और यह इस बात का सुराग है कि इस विशेष पत्र को क्यों चुना गया।
जॉर्ग डब्ल्यू मित्तग

यह उत्तर ओमीक्रॉन सिद्धांत (सही ढंग से, मुझे लगता है) का खंडन करता है।
हॉकि पार्कर

जवाबों:


31

खैर, मेरा अनुमान आदेश होगा, जो विकिपीडिया के साथ मेल खाता है

संपादित करें: (मेरा अपना (किसी भी सुधार की सराहना)) जर्मन विकिपीडिया लेख से अनुवाद

कैपिटल लेटर O (उस समय वास्तव में एक कैपिटल ओमीक्रॉन) के प्रतीक के रूप में (जर्मन: "ऑर्डनंग वॉन") आदेश के ) का उपयोग पहली बार जर्मन संख्या सिद्धांतकार पॉल बच्चन ने विश्लेषणात्मक सिद्धांत पर अपनी पुस्तक के दूसरे अंक में किया था। 1894 में। संकेतन ने एक और जर्मन नंबर सिद्धांतकार, एडमंड लैंडौ के काम के कारण लोकप्रियता हासिल की, जिसे यह नामकरण आज के साथ व्यापक रूप से जुड़ा हुआ है, विशेष रूप से जर्मन शब्दावली में।


5
हालांकि यह मामला हो सकता है कि कई गणितज्ञों ने इसे इस तरह से संदर्भित किया है, यह मूल रूप से ऐसा नहीं था। यदि आप 20 वीं शताब्दी की शुरुआत से संख्या सिद्धांत की किताबें पढ़ते हैं, तो आपको ऐसी कोई व्याख्या नहीं मिलेगी। यह वही है और मैं जर्मन को यह पता लगाने के लिए नहीं पढ़ सकता कि उसकी सोच क्या थी।
जोनाथन हेंसन

1
@ जोनाथन: पोस्ट अपडेट किया गया।
बैक

बहुत अच्छा! मैंने अपनी सभी संख्या सिद्धांत पुस्तकों में देखा और मुझे कहीं भी ओ का स्पष्टीकरण नहीं मिला। +1
जोनाथन हेंसन

2
मैं हमेशा के रूप में यह स्पष्ट कर दिया है के आदेश कह हे ज्यादा मतलब यह नहीं है के रूप में।
न्यूटोपियन

16

"बिग" का अर्थ है "पूंजी", और "ओ" का अर्थ है, "जटिलता का क्रम"। इसलिए "जटिलता के आदेश" को ओ (एफ (एक्स)) के रूप में लिखने के सम्मेलन के कारण नामित किया गया है, उदाहरण के लिए, एक कैपिटल लेटर 'ओ' या 'बिग ओ' के साथ। कोई भी इसके बारे में ज्यादा बात नहीं करता है क्योंकि 'हर कोई' इसका मतलब समझता है, और इसे समझने से वास्तव में जटिलता विश्लेषण को समझने में मदद नहीं मिलती है।

जटिलता विश्लेषण की समझ के लिए, मुझे लगता है कि topgun_ivard द्वारा पोस्ट किया गया लिंक शुरू करने के लिए एक अच्छी जगह है। डेटा संरचनाओं या एल्गोरिदम को कवर करने वाली एक अच्छी परिचयात्मक पाठ्यपुस्तक भी मदद कर सकती है।


5
मुझे क्षमा करें, लेकिन Bachmann-Landau संकेतन का आविष्कार एक जर्मन गणितज्ञ ने किया था, इसलिए मुझे शायद ही लगता है कि उन्होंने इसका नाम किसी अंग्रेजी शब्द के बाद रखा होगा। वास्तव में, भले ही इसका आविष्कार किसी अमेरिकी गणितज्ञ द्वारा किया गया हो, फिर भी शायद इसका नाम जर्मन शब्द के नाम पर रखा गया होगा, क्योंकि जब इसका आविष्कार किया गया था (1920 के आसपास, मुझे लगता है), गणित की अंतरराष्ट्रीय भाषा जर्मन थी। इसके अलावा, यह भी दूर से जटिलता के साथ कुछ नहीं करना है।
जॉर्ग डब्ल्यू मित्तग

1
@ जोर्ग: हाँ, पर ऐसा नहीं है कि सिर्फ होगा Ordnung , जो जर्मन विकी लेख दावों मूल होने के लिए: de.wikipedia.org/wiki/Landau-Symbole#Geschichte
back2dos

1
@ क्या आप अपने लेख में मामूली बदलाव कर सकते हैं ताकि मैं आपको वोट दे सकूं? आप वास्तव में सही हैं। मुझे मतदान करने से पहले आपको संपादित करना होगा।
जोनाथन हेंसन

1
@ जोनाथन, मुझे यकीन नहीं है कि आप क्या मामूली बदलाव चाहते हैं। क्या आप आगे बढ़ सकते हैं और आप जो चाहें संपादित कर सकते हैं? या, हम सिर्फ back2dos का उत्तर दे सकते हैं, ऐसा लग रहा है कि वह किसी बेहतरीन शोध के कारण वैसे भी सबसे अच्छे उत्तर के साथ समाप्त हो सकता है :)
Ethel Evans

1
हम्म, दिलचस्प। स्वीडन में, बिग ओह को आमतौर पर "ऑर्डिंग" (ऑर्डर के लिए स्वीडिश शब्द) के बजाय "ऑर्थो" (लैटिन के लिए, अच्छी तरह से, ऑर्डर) कहा जाता है।
ine:४३ पर वैटाइन सेप

11

ऑर्डर के लिए खड़ा है।

यह मूल रूप से जर्मन गणितज्ञ पॉल बाचमन द्वारा 1894 में प्रकाशित संख्या सिद्धांत डाई एनाटिसिल्के जेहलेंटेहेरी पर उनकी पुस्तकों के दूसरे खंड में पेश किया गया था । वह नोट करता है, एक सूत्र के बाद जहां वह पहली बार नोटेशन का उपयोग करता है:

(...) वेन वीर डर्च डेस ज़ीचेन ओ (एन) आइंड ग्रोसे ऑसड्रुकन, बेरेन ऑर्गन को बेज़ुग औफ एन डाई ऑर्डनंग वॉन एन नीच यूटचेरिटेट (...)

मेरा अनुवाद:

(...) जहां संकेतन O (n) के साथ हम एक परिमाण को इंगित करते हैं जिसमें n के संदर्भ में आदेश n के क्रम से अधिक नहीं है (...)

दूसरों ने जो कुछ कहा है, उसके विपरीत, उनके पाठ में कुछ भी इंगित नहीं करता है कि यह वास्तव में एक ग्रीक राजधानी ओमिक्रॉन है। वह ग्रीक और लैटिन दोनों वर्णों का भरपूर उपयोग करता है, इसलिए वास्तव में बताने का कोई तरीका नहीं है। उनके निरंतर उपयोग को देखते हुए "ऑर्डनंग एन लॉग एनपाठ में " आदि के यह स्पष्ट है कि यह किसी भी मामले में "ऑर्डनंग" (जर्मन के लिए "आदेश" यदि कोई संदेह था) के लिए खड़ा है, लेकिन यह अभी भी खुला का उपयोग नहीं छोड़ सकता है एक फैंसी ग्रीक ओ।

हालांकि, ओमिक्रॉन की उत्पत्ति की संभावना डोनाल्ड नथ के कारण एक प्रतिगामी है जिसने अपने पेपर बिग ओमिक्रॉन और बिग ओमेगा और बिग थीटा में संबंधित अवधारणाओं के लिए प्रतीकों ओमेगा (ta) और थीटा (Θ) को पेश किया , या संभवतः हार्डी और लिटिलवुड जो पहले एक ओमेगा प्रतीक पेश किया।


2
दिलचस्प। मुझे लगता है कि आप सही हैं। मैंने सिर्फ लांडौ और बाचमन की किताबों में परिभाषाएं देखीं, और वे वास्तव में) एक लैटिन ओह का उपयोग करते हैं, न कि ग्रीक ओमिक्रॉन का, बी) दोनों शब्द "ऑर्डनंग" का उपयोग करते हैं, और ग) लांडौ ने स्पष्ट रूप से कहा है कि इसका अर्थ "ऑर्डनंग" है । मुझे सही साबित होना है।
जॉर्ग डब्ल्यू मित्तग

इससे बेहतर शब्द और क्या हो सकता है? मेरा मतलब है, एक जर्मन से? ऑर्डनंग ist दास हास लेबेन!
JensG

मुझे लगता है कि आपका पहला (सही, उत्कीर्ण, भयानक) उत्तर का वाक्य पढ़ना चाहिए: 'ओ का अर्थ "ऑर्डनंग" (जर्मन अर्थ "ऑर्डर") है।' यह इस उत्तर को अन्य पाठकों का ध्यान खींचने में मदद करेगा।
हकीकी पार्कर

5

मुझे यह लेख पसंद है , उम्मीद है कि आपको यह उपयोगी लगेगा!

लेख के एक भाग का हवाला देते हुए:
बिग ग्रीक लेटर्स

बिग ओ का अक्सर दुरुपयोग किया जाता है। बिग ओ या बिग ओह वास्तव में बिग ओमिक्रॉन के लिए कम है। यह स्पर्शोन्मुख जटिलता की ऊपरी सीमा का प्रतिनिधित्व करता है। इसलिए यदि एक एल्गोरिथ्म हे (n लॉग एन) है तो एक निरंतर c मौजूद है जैसे कि ऊपरी बाउंड cn log n है।

) (N log n) (बिग थीटा) उससे कहीं अधिक कसकर बंधी हुई है। इस तरह के एक एल्गोरिथ्म का अर्थ है कि दो स्थिरांक c1 और c2 मौजूद हैं जैसे कि c1n log n <f (n) <c2n log n।

N (n लॉग एन) (बिग ओमेगा) का कहना है कि एल्गोरिथ्म में cn लॉग एन की निचली सीमा होती है।

अन्य हैं लेकिन ये सबसे आम हैं और बिग ओ सभी में सबसे आम हैं। इस तरह का भेद आमतौर पर महत्वहीन है लेकिन यह ध्यान देने योग्य है। सही अंकन सब के बाद, सही अंकन है।

बिग ओ क्या है?

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

बिग ओ क्या नहीं है?

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

मेमोरी उपयोग: एक एल्गोरिथ्म दूसरे की तुलना में बहुत अधिक मेमोरी का उपयोग कर सकता है। स्थिति के आधार पर यह पूरी तरह से अप्रासंगिक से महत्वपूर्ण तक कुछ भी हो सकता है; तुलना की लागत: यह हो सकता है कि तत्वों की तुलना करना वास्तव में महंगा है, जो संभवतः एल्गोरिदम के बीच किसी भी वास्तविक दुनिया की तुलना को बदल देगा; मूविंग एलिमेंट्स की लागत: कॉपी करने वाले तत्व आम तौर पर सस्ते होते हैं, लेकिन ऐसा जरूरी नहीं है; आदि।


5
बस एक लेख जोड़ने से अधिक उपयोगी नहीं है। यह आमतौर पर एक अच्छा विचार है कि जिस खंड को आप विशेष रूप से थ्रेड के लिए प्रासंगिक पाते हैं, उसे उद्धृत या उद्धृत करें।
डेमियन ब्रेख्त

3
क्या डाउन वोट वास्तव में आवश्यक हैं? उनके द्वारा जोड़ा गया लेख बहुत ही प्रासंगिक है, और IMHO बहुत उपयोगी है। इस बीच, शीर्ष मतदान का जवाब विकिपीडिया लेख का एक लिंक है। Hive-mind के पाखंड को दूर करने के लिए +1।
ब्रैंडन मोरेट्ज़

1
-1, क्योंकि आर्टिस, एक बहुत अच्छा और अच्छी तरह से लिखा लेख होने के नाते, सवाल के साथ कुछ नहीं करना है।
जोर्ग डब्ल्यू मित्तग

@ जोर्ग, मैंने कभी नहीं कहा कि लेख समस्या का समाधान करेगा, लेकिन मैंने साझा किया क्योंकि मैंने इन अवधारणाओं को देखने के दौरान इसे उपयोगी पाया था।
topgun_ivard

3
@topgun_ivard: तो क्या होगा अगर यह एक मृत कड़ी में बदल जाए? Paraphrasing 1) इस धागे के दर्शकों को आपके लिंक (समय पैसा है) का एक Coles नोट्स संस्करण प्राप्त करने की अनुमति देता है, और 2) यह सुनिश्चित करता है कि आपकी पोस्ट मृत लिंक पर अप्रासंगिक नहीं है।
डेमियन ब्रेख्त

2

"f (x) जी का बड़ा है (x)"

यह कार्यों के विकास की भविष्यवाणी करने का एक गणितीय तरीका है।

पूर्णांक या समुच्चय के सेट से वास्तविक संख्याओं के समूह में f और g को कार्य करते हैं। हम कहते हैं कि f (x) O (g (x)) है यदि स्थिरांक C और k ऐसे हैं जो f (x) हैं। <= सी | जी (एक्स) | जहाँ भी x> के।

आप इसे "f (x) के रूप में पढ़ेंगे g (x) का बड़ा-ओह"

जर्मन गणितज्ञ एडमंड लैंडौ के बाद बिग-ओ को कभी-कभी एक लैंडू प्रतीक कहा जाता है। मुझे नहीं लगता कि यह उससे परे किसी भी चीज के लिए खड़ा है। आपके पास भी इसी तरह के बड़े-ओमेगा और बड़े-थेटा नोटेशन हैं। प्रतीकों के रूप में मनमाने ढंग से हमेशा के रूप में थीटा का उपयोग कर रहे हैं अपने त्रिकोण में कोणों को दर्शाने के लिए आपके हाई-स्कूल प्लानर ज्यामिति वर्ग में था।

सुधार @ back2dos ने आदेश के संदर्भ में O के लिए एक संतोषजनक स्पष्टीकरण प्रदान किया है। अच्छा काम। उसका जवाब देखिए।

डोनाल्ड नुथ ने इसे कंप्यूटर कार्यक्रमों की जटिलता का अध्ययन करने के लिए लागू किया था।

यदि आप उस कारण का पता लगाना चाहते हैं जिसका उपयोग संकेतन के लिए किया गया था, तो आपको पढ़ना चाहिए

1892 से पॉल बाचमन द्वारा "एनालिटिसि ज़हलेंटेहेरी"


2

संपादित करें: मुझे पता है कि मैं गलत हूं। फिर भी, शायद यह किसी को अपने प्रतीकों को सीधा रखने में मदद करता है, इसलिए मैं इसे हटाने नहीं जा रहा हूं।


वास्तव में, यह नहीं लैटिन पत्र ओह , यह ग्रीक अक्षर है ऑमिक्रॉन । दुर्भाग्य से, उन दोनों के पास एक ही ग्लिफ़ है, इसलिए, समय के साथ, मूल संस्करण दूषित हो गया, और अब यह ओह है

प्रतीक की पसंद का वास्तव में कोई विशेष अर्थ नहीं है, इसे एक मेमोनी डिवाइस के रूप में चुना गया था :

  • ओमिक्रॉन में अक्षर माइक्रो होते हैं, और ओमिक्रॉन प्रतीक का शब्दार्थ "लगभग" से छोटा होता है
  • ओमेगा में MEGA के अक्षर हैं, और ओमेगा प्रतीक के शब्दार्थ का अर्थ है "इससे बड़ा"
  • थीटा (sign) एक समान चिन्ह की तरह दिखता है, और थीटा प्रतीक के शब्दार्थ का अर्थ लगभग "बराबर" होता है

बस। इसका कोई वास्तविक अर्थ नहीं है, यह सिर्फ शब्दों पर एक नाटक है, यदि आप शब्दार्थ को और अधिक आसानी से याद करने में आपकी सहायता करेंगे।


2
जबकि मुझे आपके मुमनी प्रस्ताव पर विश्वास करना अच्छा लगेगा (यह वास्तव में अच्छा विचार है), मुझे कुछ प्रमाण देखने की जरूरत है कि यह बछमन का वास्तविक मूल इरादा है। इसे प्रदान करें, और मैं आपको +1 करूंगा।
जोनाथन हेंसन

2
@ जोनाथन हेंसन: जाहिरा तौर पर, मैं प्रो। नुथ :-) द्वारा गुमराह किया गया था
जॉर्ग डब्ल्यू मित्तग

-5

अद्यतन: मेरे जवाब को साफ करने और अधिक सटीक होने का प्रयास

बिग ओ नोटेशन वहाँ विकास दर के अनुसार कार्यों की विशेषता है। O ऑर्डर के लिए खड़ा है (पहला ऑर्डर n दूसरा ऑर्डर n-squared आदि होने के कारण)। और अगर मैं गलत नहीं हूँ तो यह N तत्वों को दिए गए तरीकों रनटाइम (या स्टोरेज) के लिए सबसे खराब स्थिति होगी। आदेश जितना बड़ा होता है विधि उतनी ही खराब होती है।
उदाहरण के लिए, एक सरणी में एक रिकॉर्ड ओ (1) है (मैं हैश तालिकाओं के कुछ कार्यान्वयन में विश्वास करता हूं जो भी मामला है)। लिंक सूची के अंत में एक मान जोड़ना O (N) होगा क्योंकि आपको तत्व आदि जोड़ने से पहले सूची के अंत में जाना होगा।

यह उत्तर मेरे पहले प्रयास से थोड़ा अधिक सही होना चाहिए :)


2
-1 क्योंकि यह सिर्फ सादा पुराना गलत है और एक अलग सवाल का जवाब दिया गया था। सवाल यह था कि "ओ" अक्षर का उपयोग क्यों किया गया था, न कि "बिग ओ नोटेशन कैसे काम करता है?"। आप इस बारे में गलत हैं कि बिग-ओह कैसे काम करता है ... एक सरणी के माध्यम से लूपिंग हे (एन) है जहां एन सरणी का आकार है, ओ (1) नहीं। नोटेशन का एल्गोरिदम के "चक्र" से कोई लेना-देना नहीं है ... यह एक एल्गोरिथम के रन टाइम के ऊपरी बाउंड की माप है।
केसी पैटन

यहाँ आपके साथ बहस करने के लिए नहीं, लेकिन इसका मतलब यह है कि मेरा क्या मतलब है। रन टाइम का क्या मतलब है सही? खैर, रन टाइम को मशीन द्वारा संसाधित किए जाने वाले समय से निर्धारित किया जाता है। मुझे लगता है कि मैं यहां उदारतापूर्वक उपयोग चक्र का उपयोग करता हूं। चक्र से मुझे लगता है कि मुझे इसे पुनरावृति कहना चाहिए या ऐसा कुछ होना चाहिए। आप ऊपरी सीमा के बारे में सही हैं, हालांकि, यह औसत निर्धारित नहीं करता है। इसलिए मैं गिरावट को स्वीकार करता हूं।
सॉफ्टवेयरसावेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.