उदाहरणों के साथ C ++ में मर्ज को कैसे लागू करें



यह आलेख आपको C ++ में मर्ज सॉर्ट का एक अलग और व्यापक ज्ञान प्रदान करेगा, यह उदाहरणों के साथ कैसे काम करता है।

मर्ज सॉर्ट क्या है? मर्ज सॉर्ट एक तुलना-आधारित सॉर्टिंग एल्गोरिथ्म है जो विभाजन और विजेता श्रेणी से संबंधित है। मर्ज सॉर्ट का उपयोग डिवाइड के आधार पर एक सरणी को सॉर्ट करने और रणनीति को जीतने के लिए किया जाता है जो इस पोस्ट में कुछ अन्य अवधारणाओं जैसे कि इसके एल्गोरिदम के साथ एक उदाहरण के साथ संक्षिप्त रूप से कवर किया जाएगा। हम C ++ में मर्ज की समय जटिलता को भी देखेंगे

इस लेख में निम्नलिखित बिंदुओं को शामिल किया जाएगा,





C ++ में मर्ज सॉर्ट पर इस लेख के साथ आगे बढ़ना

डिवाइड और जीत एल्गोरिथ्म

यदि आप पहले से ही परिचित हैं कि कैसे एस्कॉर्ट काम करता है तो आप विभाजन के बारे में जागरूक हो सकते हैं और रणनीति को जीत सकते हैं। फूट डालो और जीतो में तीन प्रमुख कदम शामिल हैं। इन चरणों को समझने के लिए, एक सरणी पर विचार करें नमस्कार [] सूचकांक ‘a’ और अंत सूचकांक ’n’ होने के कारण हम अपने सरणी को निम्न तरीके से लिख सकते हैं नमस्कार [a & hellip..n]



फूट डालो- बांटो और जीतो के प्रमुख कदम या प्रधान कदम दी गई समस्या को उप-समस्याओं या उप-भागों में विभाजित करना है। यहां पकड़ यह है कि उप-समस्याएं मूल समस्या के समान और आकार में छोटी होनी चाहिए। हमारे मामले में हम अपने एरे को 2 हिस्सों में विभाजित करेंगे [a & hellip.m] [m + 1 & hellip..n] m एक n और n इंडेक्स के बीच में स्थित है

जीतना- एक बार जब हम अपनी समस्या को उप-समस्याओं में विभाजित करते हैं। हम इन सबप्रोब्लेम्स को पुनरावर्ती रूप से हल करते हैं।

कंबाइन- इस चरण में, हम अपनी उप-समस्याओं के सभी समाधानों को एक उपयुक्त तरीके से जोड़ते हैं। दूसरे शब्दों में, हम एक क्रमबद्ध सरणी बनाने के लिए 2 अलग-अलग क्रमबद्ध सरणियों को जोड़ते हैं। वहाँ हम अपने क्रमबद्ध सरणी है।



C ++ में मर्ज सॉर्ट पर इस लेख के साथ आगे बढ़ना

एक उदाहरण के साथ मर्ज सॉर्ट एल्गोरिथ्म को समझना

इस बिंदु पर, हम जानते हैं कि मर्ज सॉर्ट द्वारा किस दृष्टिकोण का उपयोग किया जाएगा। तो, आइए एक उदाहरण पर विचार करें और हैलो [] से प्रत्येक चरण के माध्यम से एक सॉर्ट किए गए सरणी के बिना जाएं।
उदाहरण- हैलो [10, 3, 7, 1, 15, 14, 9, 22]

Merge-sort-in-C++

उपरोक्त छवि में, हमने एक अनरिज्ड एरे पर विचार किया और एक सॉर्ट किए गए एरे को प्राप्त करने के लिए मर्ज सॉर्ट का उपयोग किया। अब, प्रत्येक चरण को देखें और पूरे एल्गोरिथ्म को समझें

1. सबसे पहले, हमने एक सरणी पर विचार किया नमस्ते [10, 3, 7, 1, 15, 14, 9, 22] इस सरणी में कुल तत्व हैं

2. जैसा कि हमने पहले देखा था कि मर्ज सॉर्ट डिवाइड को विभाजित करने और तत्वों को सॉर्ट करने के लिए एप्रोच का उपयोग करता है। हमने m पाया जो हमारे सरणी के मध्य में स्थित है और हमारे सरणी को बीच से विभाजित किया गया है जहाँ m = (a - n) / 2 'a' सबसे बाएं तत्व का सूचकांक है और n हमारे सरणी के सबसे दाहिने तत्व का सूचकांक है ।

3. पहले विभाजन के बाद, हमारे पास 2 भाग हैं जिनमें 4 तत्व शामिल हैं। आइए पहले छमाही [10, 3, 7, 1] को देखें।

4. हम [10, 3, 7, 1] को 2 भागों में विभाजित करते हैं [10, 3] और [7, 1]। उसके बाद हम उन्हें आगे [10], [3], [7], [1] में विभाजित करते हैं। आगे विभाजन संभव नहीं है क्योंकि हम m की गणना नहीं कर सकते हैं। किसी एकल तत्व वाली सूची को हमेशा क्रमबद्ध माना जाता है।

5. विलय कैसे होता है? चलो पता करते हैं। पहले [१०] और [३] की तुलना की जाती है और आरोही क्रम में विलय किया जाता है [३, १०] उसी तरह हमें मिलता है [१, []

6. उसके बाद, हम [3, 10] और [1, 7] की तुलना करते हैं। एक बार तुलना करने के बाद, हम उन्हें आरोही क्रम में मिला देते हैं और हमें [1, 3, 7, 10] मिलता है।

7.. [१५, १४, ९, २] भी एक समान तरीके से विभाजित और संयोजित होता है [९, १४, १५, २२]।

8. अंतिम चरण में हम तुलना और संयोजन करते हैं [१५, १४, ९, २] [९, १४, १५, २२] हमें अपने क्रमबद्ध सरणी देने के लिएयानी [1, 3, 7, 9, 10, 14, 15, 22]।

सरणी में php टर्न स्ट्रिंग

C ++ में मर्ज सॉर्ट पर इस लेख के साथ आगे बढ़ना

मर्ज सॉर्ट के लिए स्यूडोकोड

छोड़ दिया तो शुरू करो

फ़ंक्शन मर्जसेट () पुनरावर्ती रूप से हमारे सरणी को विभाजित करने के लिए खुद को कॉल करता है जब तक कि यह एक एकल तत्व नहीं बन जाता है और फ़ंक्शन मर्ज () का उपयोग सॉर्ट किए गए सरणियों को मर्ज करने के लिए किया जाता है।

C ++ में मर्ज सॉर्ट पर इस लेख के साथ आगे बढ़ना

C ++ में मर्ज सॉर्ट प्रोग्राम

#include #include #include namepace std void मर्ज (int [a], int Firstindex, int m, int Lastindex) का उपयोग करके // उप-सरणियों को मर्ज करता है जो विभाजन void bgeSort (int [a]], int Firstindex, int फर्स्ट Lastindex) {यदि (Firstindex)आकार int हैलो [आकार], मैं cout<<'Enter the elements of the array one by one:n' for(i=0 i>नमस्कार [i] मर्जस्टॉर्ट (हैलो, 0, आकार - 1) cout<<'The Sorted List isn' for(i=0 i

आउटपुट-

C ++ में मर्ज सॉर्ट पर इस लेख के साथ आगे बढ़ना

समय जटिलता

जब हम एल्गोरिदम के बारे में बात करते हैं, तो समय जटिलता एक महत्वपूर्ण पहलू माना जाता है। अन्य सॉर्टिंग एल्गोरिदम की तुलना में मर्ज सॉर्ट को महान समय जटिलता माना जाता है।

वर्स्ट-केस रनिंग टाइम- O (n log n)
सर्वश्रेष्ठ समय चल रहा है- O (n लॉग एन)
औसत चलने का समय- O (n लॉग एन)

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

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस ब्लॉग के टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपके पास वापस आ जाएंगे।