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

मेल्डेबल DEPQs (Meldable DEPQs)

  • एक मेल्डेबल DEPQ (MDEPQ) को एक DEPQ (डबल एंडेड प्रायोरिटी क्यू) के रूप में परिभाषित किया जाता है जो, उपरोक्त सूचीबद्ध DEPQ ऑपरेशन्स के अलावा, ऑपरेशन meld(p, q) शामिल करता है ... DEPQs p और q को एक सिंगल DEPQ में मेल्ड करें। डबल-एंडेड प्रायोरिटी क्यू p और q को मेल्ड करने का परिणाम एक सिंगल डबल-एंडेड प्रायोरिटी क्यू है जिसमें p और q के सभी एलिमेंट्स होते हैं। मेल्ड ऑपरेशन विनाशकारी (Destructive) है क्योंकि मेल्ड के बाद, p और q स्वतंत्र DEPQs के रूप में नहीं रहते।
  • दो DEPQs को रैखिक समय से कम में मेल्ड करने के लिए, यह आवश्यक है कि DEPQs को एक्सप्लिसिट पॉइंटर्स (Explicit Pointers) का उपयोग करके दर्शाया जाए (बजाय इम्प्लिसिट वालों के जैसे हीप के एरे प्रतिनिधित्व में) अन्यथा एलिमेंट्स की एक रैखिक संख्या को उनके प्रारंभिक से उनके अंतिम स्थानों पर ले जाना आवश्यक होगा।
  • यह दिखाया जा सकता है कि जब मिन-मैक्स पेयर हीप (Min-max Pair Heap) को इस तरह दर्शाया जाता है, तो n आकार का एक एलिमेंट DEPQ को k आकार के दूसरे एलिमेंट (जहां k ≤ n) के साथ O(log(n/k) * log k) समय में मेल्ड किया जा सकता है।
  • यह दिखाया जा सकता है कि क्रमशः आकार a और b के दो मिन-मैक्स हीप्स को मेल्ड करने की जटिलता Ω(a + b) है।
  • एक MDEPQ कार्यान्वयन जो मिन और मैक्स एलिमेंट्स की गणना, एक एलिमेंट इंसर्ट करने, और दो प्रायोरिटी क्यू को O(1) समय में मेल्ड करने की अनुमति देता है। न्यूनतम या अधिकतम एलिमेंट को हटाने के लिए आवश्यक समय O(log n) है।
  • यह दिखाया जा सकता है कि लेफ्टिस्ट ट्रीज़ (Leftist Trees) को MDEPQs के लिए एक सरल प्रतिनिधित्व प्राप्त करने के लिए अनुकूलित किया जा सकता है जिसमें मेल्ड लॉगरिदमिक समय लेता है और शेष ऑपरेशन्स का वही असिम्प्टोटिक कॉम्प्लेक्सिटी होता है जब उपरोक्त किसी भी DEPQ प्रतिनिधित्व को लागू किया जाता है।
  • यह ध्यान देने योग्य है कि यदि हम बेस MPQ स्ट्रक्चर के रूप में FMPQ (फास्ट मेल्डेबल प्रायोरिटी क्यू) स्ट्रक्चर को लागू करते हैं, तो हमें एक टोटल कॉरेस्पॉन्डेंस (Total Correspondence) MDEPQ स्ट्रक्चर प्राप्त होता है जिसमें removeMax और removeMin लॉगरिदमिक समय लेते हैं, और शेष ऑपरेशन्स कॉन्स्टेंट समय लेते हैं। यह अनुकूलन डुअल प्रायोरिटी क्यू अनुकूलन की तुलना में उत्कृष्ट है क्योंकि स्पेस आवश्यकताएं लगभग आधी हैं। इसके अतिरिक्त, टोटल कॉरेस्पॉन्डेंस अनुकूलन डुअल प्रायोरिटी क्यू अनुकूलन से तेज है।
  1. C में लिंक्ड लिस्ट का उपयोग करके प्रायोरिटी क्यू (Priority Queue) C में लिंक्ड लिस्ट का उपयोग करके प्रायोरिटी क्यू (Priority Queue)

    हमें डेटा और पूर्णांक मान के रूप में प्राथमिकता दी गई है और कार्य दी गई प्राथमिकता के अनुसार एक लिंक्ड लिस्ट बनाना और परिणाम प्रदर्शित करना है। क्यू एक FIFO डेटा संरचना है जिसमें पहले डाला गया तत्व हटाया जाने वाला पहला होता है। एक प्रायोरिटी क्यू एक प्रकार की क्यू है जिसमें तत्वों को प्राथमिकता के

  1. डुअल प्रायोरिटी क्यूज़ (Dual Priority Queues) डुअल प्रायोरिटी क्यूज़ (Dual Priority Queues)

    सामान्य विधियों का अस्तित्व है जो सिंगल-एंडेड प्रायोरिटी क्यू (PQ) डेटा स्ट्रक्चर्स से कुशल DEPQ (डबल एंडेड प्रायोरिटी क्यू) डेटा स्ट्रक्चर्स पर पहुंचने के लिए हैं जो remove(bNode) ऑपरेशन (यह ऑपरेशन PQ से नोड bNode को हटा देता है) का कुशल कार्यान्वयन भी प्रदान करते हैं। इन विधियों में सबसे सरल, डुअल

  1. DEPQ के लिए सामान्य विधियाँ: डुअल हीप, टोटल और लीफ कॉरेस्पॉन्डेंस DEPQ के लिए सामान्य विधियाँ: डुअल हीप, टोटल और लीफ कॉरेस्पॉन्डेंस

    डबल-एंडेड प्रायोरिटी क्यू (DEPQ) के लिए सामान्य विधियाँ डबल-एंडेड प्रायोरिटी क्यू (DEPQ) एक डेटा संरचना है जो न्यूनतम और अधिकतम दोनों तत्वों तक कुशल पहुंच और विलोपन की अनुमति देती है। सिंगल-एंडेड प्रायोरिटी क्यू (PQ) से कुशल DEPQ संरचनाएं बनाने के लिए तीन मुख्य सामान्य विधियाँ हैं, बशर्ते PQ एक कुश