एल्गोरिदम का विश्लेषण कैसे किया जाता है? क्या Quicksort में O(n^2)
खराब-केस प्रदर्शन होता है जबकि विलय सॉर्ट में O(n log(n))
सबसे खराब-केस प्रदर्शन होता है?एल्गोरिदम का विश्लेषण (जटिलता)
उत्तर
यह पूरे सेमेस्टर के लिए एक विषय है। आखिरकार हम संचालन की संख्या पर ऊपरी बाउंड के बारे में बात कर रहे हैं जो इनपुट के आकार के कार्य के रूप में एल्गोरिदम खत्म होने से पहले पूरा किया जाना चाहिए। हम सहकारी (यानी 10 एन बनाम 4 एन^2) शामिल नहीं करते हैं क्योंकि एन पर्याप्त रूप से पर्याप्त है, इससे कोई फर्क नहीं पड़ता।
साबित करने के लिए कि एल्गोरिदम का बड़ा-ओह कितना मुश्किल हो सकता है। इसे औपचारिक प्रमाण की आवश्यकता है और कई तकनीकें हैं। अक्सर एक अच्छा adhoc तरीका यह है कि एल्गोरिदम बनाता है डेटा पर कितने पास गुजरता है। उदाहरण के लिए, यदि आपके एल्गोरिदम ने लूप के लिए घोंसला लिया है, तो प्रत्येक एन आइटम के लिए आपको एन बार संचालित करना होगा। वह आमतौर पर ओ (एन^2) होगा।
सॉर्ट विलय करने के लिए, आप डेटा को आधे से अधिक में विभाजित करते हैं। यह लॉग 2 (एन) लेता है। और प्रत्येक विभाजन के लिए आप डेटा पर एक पास करते हैं, जो एन लॉग (एन) देता है।
त्वरित क्रम थोड़ा सा चालक है क्योंकि औसत मामले में यह भी एन लॉग (एन) है। आपको कल्पना करना होगा कि क्या होता है यदि आपका विभाजन डेटा को विभाजित करता है जैसे हर बार जब आप विभाजन के एक तरफ केवल एक तत्व प्राप्त करते हैं। फिर आपको लॉग (एन) के बजाय डेटा एन बार विभाजित करने की आवश्यकता होगी जो इसे एन^2 बनाता है। क्विकॉर्ट का लाभ यह है कि यह जगह में किया जा सकता है, और हम आम तौर पर एन लॉग (एन) प्रदर्शन के करीब आते हैं।
quicksort और merge sort दोनों सरणी को दो में विभाजित करें, प्रत्येक भाग को क्रमशः क्रमबद्ध करें, फिर परिणाम को गठबंधन करें। Quicksort एक "पिवट" तत्व चुनकर विभाजित करता है और सरणी को छोटे या बड़े में पिवोट में विभाजित करता है। क्रमबद्ध रूप से विभाजित विभाजन को मर्ज करें और फिर परिणामों को रैखिक समय में विलीन करें। दोनों मामलों में एक ही चरण ओ (एन) है, और यदि सरणी आकार हर बार आधा होता है तो यह एक लॉगरिदमिक चरणों की संख्या देगा। तो हम ओ (एन लॉग (एन)) की उम्मीद करेंगे।
हालांकि क्विक्सॉर्ट का सबसे खराब मामला है जहां विभाजन हमेशा असमान होता है, इसलिए आपको एन के लॉगरिदमिक के अनुपात में कई कदम नहीं मिलते हैं, लेकिन एन के आनुपातिक कई कदम हैं। सॉर्ट स्प्लिट को दो हिस्सों में विभाजित करें (या जितना संभव हो सके बंद करें) इसलिए इसमें यह समस्या नहीं है।
- त्वरित प्रकार धुरी चयन के आधार पर कई भिन्न रूप
- मान लेते हैं कि हम हमेशा एक धुरी
के रूप में सरणी में 1 आइटम का चयन करते हैं इनपुट सरणी सॉर्ट किया जाता है, तो त्वरित प्रकार केवल एक हो जाएगा है चयन प्रकार की तरह! क्योंकि आप वास्तव में सरणी को विभाजित नहीं कर रहे हैं .. आप केवल प्रत्येक चक्र
पर पहले आइटम चुन रहे हैं दूसरी ओर मर्ज सॉर्ट हमेशा इसकी सामग्री के बावजूद इनपुट सरणी को उसी तरीके से विभाजित करेगा!
यह भी ध्यान दें: विभाजित होने में सबसे अच्छा प्रदर्शन और डिवीजन की लंबाई के दौरान जीतें - लगभग-बराबर!
यह एल्गोरिदम पाठ्यक्रम सामग्री का प्रारंभिक विश्लेषण है।
एक ऑपरेशन परिभाषित किया गया है (यानी गुणा) और विश्लेषण अंतरिक्ष या समय के संदर्भ में किया जाता है।
यह ऑपरेशन अंतरिक्ष या समय के संदर्भ में गिना जाता है।आम तौर पर विश्लेषण इनपुट आकार पर आश्रित चर होने के रूप में किया जाता है।
उदाहरण स्यूडोकोड:
foreach $elem in @list
op();
endfor
वहाँ n संचालन, प्रदर्शन किया जहां n@list
के आकार है किया जाएगा। अगर आप मुझ पर विश्वास नहीं करते हैं तो इसे स्वयं गिनें।
क्विकॉर्ट और विलय के विश्लेषण के लिए गणितीय परिष्कार के रूप में जाना जाने वाला एक सभ्य स्तर की आवश्यकता होती है। संक्षेप में, आप रिकर्सिव रिलेशनशिप से व्युत्पन्न एक अलग अंतर समीकरण हल करते हैं।
- 1. प्राइम का एल्गोरिदम समय जटिलता
- 2. कोल्मोगोरोव जटिलता अनुमान एल्गोरिदम
- 3. 2^एन जटिलता एल्गोरिदम
- 4. एल्गोरिदम की जटिलता
- 5. रिकर्सिव एल्गोरिदम की स्पेस जटिलता
- 6. मैट्रिक्स गुणा एल्गोरिदम समय जटिलता
- 7. बिग ओ विश्लेषण के लिए एल्गोरिदम
- 8. समय जटिलता
- 9. इनपुट के साथ एल्गोरिदम जटिलता फिक्स्ड साइज्ड
- 10. फ्लेरी के एल्गोरिदम की समय जटिलता
- 11. एल्गोरिदम की कंप्यूटिंग समय जटिलता पर संसाधन
- 12. इस एल्गोरिदम की अंतरिक्ष जटिलता ओ (1)
- 13. एक पुनरावर्ती एल्गोरिदम की समय जटिलता
- 14. गहराई की पहली जटिलता-प्रथम ग्राफ एल्गोरिदम
- 15. शब्द की जटिलता का अनुमान लगाने के लिए एल्गोरिदम
- 16. एल्गोरिदम की सटीक जटिलता की गणना कैसे करें?
- 17. भाव विश्लेषण के लिए अच्छा एल्गोरिदम
- 18. मौजूदा भावना विश्लेषण एल्गोरिदम क्या हैं?
- 19. न्यूनतम जटिलता
- 20. twitters संदेशों का विश्लेषण कैसे करें? (मेरे एल्गोरिदम में सुधार)
- 21. समय जटिलता()
- 22. जटिलता या प्रदर्शन की तुलना में विभिन्न निर्णय पेड़ एल्गोरिदम
- 23. जटिलता
- 24. ओ (1) जटिलता
- 25. आम आदमी की शर्तों में अमूर्त जटिलता?
- 26. एल्गोरिदम
- 27. बूस्ट का एल्गोरिदम :: गणित :: erf
- 28. cmdline तर्कों का विश्लेषण =
- 29. का विश्लेषण विधानसभा कोड
- 30. समय जटिलता
ऑपरेशन की गणना कैसे की जाती है इसके अतिरिक्त महत्वपूर्ण है। मैंने इस 'उत्तर' पर स्कोर बढ़ा दिया है। – mozillanerd