Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting)

अनुकूली मर्ज सॉर्ट (ADAPTIVE MERGE SORT)

अनुकूली मर्ज सॉर्ट (Adaptive Merge Sort) वही मर्ज करता है जो मर्ज सॉर्ट करता है। हालांकि, प्रारंभिक सब-लिस्ट का आकार एलिमेंट्स की सूची में क्रम (Ordering) के अस्तित्व पर निर्भर करता है बजाय आकार 1 की सब-लिस्ट होने के। उदाहरण के लिए, चित्र में सूची पर विचार करें।

डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting)

इसमें 2 सॉर्टेड सब-लिस्ट हैं।

  • सब-लिस्ट 1: एलिमेंट्स 16, 15, 14, 13 के साथ।
  • सब-लिस्ट 2: एलिमेंट्स 9, 10, 11, 12 के साथ।

डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting)

सब-लिस्ट 1 सॉर्टेड है लेकिन रिवर्स ऑर्डर में। इस प्रकार, सब-लिस्ट 1 को चित्र में दिखाए अनुसार उलट दिया जाता है।

डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting)

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

डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting)

डिज़ाइन विचार (Design Idea)

  • आवश्यक या रिवर्स ऑर्डर में पहले से सॉर्टेड सब-लिस्ट ढूंढकर शुरू करें
  • यदि रिवर्स ऑर्डर में एलिमेंट्स वाली कोई सब-लिस्ट मौजूद है, तो पहली एलिमेंट को अंतिम से, दूसरी को अंतिम से दूसरी से एक्सचेंज करके सब-लिस्ट को उलट दें और इसी तरह जारी रखें।
  • सब-लिस्ट को तब तक मर्ज करते रहें जब तक केवल 1 सब-लिस्ट शेष न रह जाए।

अनुकूली मर्ज सॉर्ट विश्लेषण (Adaptive Merge Sort Analysis)

अनुकूली मर्ज सॉर्ट आकार 1 की सब-लिस्ट से शुरू करने के बजाय, सब-लिस्ट ढूंढता है जो पहले से आवश्यक या रिवर्स ऑर्डर में सॉर्टेड हैं। प्रारंभ में पाई गई सब-लिस्ट का आकार न्यूनतम 2 और अधिकतम m होगा (m एलिमेंट्स की संख्या है)।

हालांकि, यदि सब-लिस्ट में रिवर्स ऑर्डर में एलिमेंट्स हैं, तो यह मर्ज ऑपरेशन शुरू करने से पहले लिस्ट को उलट देता है। लिस्ट को उलटने के लिए (m/2) एक्सचेंज ऑपरेशन की आवश्यकता होती है।

सर्वोत्तम स्थिति (Best Case)

यदि सूची पहले से सॉर्टेड ऑर्डर या रिवर्स ऑर्डर में है, तो अनुकूली मर्ज सॉर्ट में केवल एक लिस्ट होगी और किसी मर्ज ऑपरेशन की आवश्यकता नहीं होगी। हालांकि, यह पता लगाने के लिए कि सूची पहले से सॉर्टेड है, O(m) तुलना ऑपरेशन और (m/2) एक्सचेंज ऑपरेशन की आवश्यकता होगी यदि सूची रिवर्स ऑर्डर में सॉर्टेड है। यह अनुकूली मर्ज सॉर्ट को तब भी अनुकूली बनाता है जब सूची रिवर्स ऑर्डर में सॉर्टेड हो।

इस प्रकार सर्वोत्तम स्थिति के लिए समय जटिलता (Time Complexity) निम्नानुसार गणना की जाती है −

T(m) = (m-1) + (m/2)
T(m) = (2m-2+m)/2
T(m) = O(m).

हालांकि, अनुकूली मर्ज सॉर्ट मर्ज सॉर्ट की तुलना में O(m) अतिरिक्त स्थान (Additional Space) लागू करता है।

सबसे खराब स्थिति (Worst Case)

अनुकूली मर्ज सॉर्ट सब-लिस्ट ढूंढता है जो पहले से आवश्यक या रिवर्स ऑर्डर में सॉर्टेड है। हालांकि, सबसे खराब स्थिति में कोई आंशिक या कुल क्रमबद्ध एलिमेंट नहीं होते। इस प्रकार, प्रारंभ में पाई गई सब-लिस्ट आकार 2 की होगी। एक बार सब-लिस्ट मिल जाने पर मर्जिंग प्रक्रिया शुरू होती है।

  • आकार 2 की सब-लिस्ट मर्ज करने से आकार 4 की सॉर्टेड सब-लिस्ट प्राप्त होती है।
  • आकार 4 की सब-लिस्ट मर्ज करने से आकार 8 की सॉर्टेड सब-लिस्ट प्राप्त होती है।
  • मर्जिंग की प्रक्रिया तब तक चलती है जब तक 2ᵏ < m। जहां k k-वां मर्जिंग चरण है।

चूंकि अनुकूली मर्ज सॉर्ट के सबसे खराब स्थिति में मर्जिंग चरण मर्ज सॉर्ट के समान हैं। इस प्रकार, अनुकूली मर्ज सॉर्ट के सबसे खराब स्थिति के लिए समय जटिलता मर्ज सॉर्ट के समान है −

T(m) = O(m log m).
  1. डेटा स्ट्रक्चर में कंप्रेस्ड क्वाडट्रीज़ और ऑक्ट्रीज़ डेटा स्ट्रक्चर में कंप्रेस्ड क्वाडट्रीज़ और ऑक्ट्रीज़

    कंप्रेस्ड क्वाडट्रीज़ (Compressed Quadtrees) प्रत्येक उपविभाजित सेल (Subdivided Cell) से संबंधित नोड को स्टोर करते समय, हम बहुत सारे खाली नोड्स स्टोर कर सकते हैं। ऐसे विरल ट्रीज़ (Sparse Trees) के आकार को कम करना केवल उन सबट्रीज़ को स्टोर करके संभव है जिनके लीफ में दिलचस्प डेटा होता है (यानी महत्वपू

  1. हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure) हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure)

    परिचय (Introduction) टेम्पलेट पैरामीटर्स के लिए HDS या हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure - संक्षिप्त HalfedgeDS) को एक एज-केंद्रित डेटा स्ट्रक्चर (Edge-centered Data Structure) के रूप में परिभाषित किया जाता है जो वर्टेक्स, एज और फेसेस (Vertices, Edges and Faces) की घटना जानकारी (Incidenc

  1. डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting) डेटा स्ट्रक्चर में अनुकूली मर्जिंग और सॉर्टिंग (Adaptive Merging and Sorting)

    अनुकूली मर्ज सॉर्ट (ADAPTIVE MERGE SORT) अनुकूली मर्ज सॉर्ट (Adaptive Merge Sort) वही मर्ज करता है जो मर्ज सॉर्ट करता है। हालांकि, प्रारंभिक सब-लिस्ट का आकार एलिमेंट्स की सूची में क्रम (Ordering) के अस्तित्व पर निर्भर करता है बजाय आकार 1 की सब-लिस्ट होने के। उदाहरण के लिए, चित्र में सूची पर विचार कर