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

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


डबल-एंडेड प्रायोरिटी क्यू (DEPQ) के लिए सामान्य विधियाँ

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

1. डुअल स्ट्रक्चर मेथड (डुअल हीप)

सबसे सरल विधि: एक मिन-PQ और एक मैक्स-PQ दोनों को बनाए रखें, जिसमें समान तत्वों के नोड्स के बीच **कॉरेस्पॉन्डेंस पॉइंटर्स** हों।

  • स्पेस: 2n (प्रत्येक तत्व दोनों हीप्स में संग्रहीत), हालांकि अनुकूलन संभव है (प्रत्येक तत्व केवल एक हीप में)।
  • ऑपरेशन्स:
    • `getMin()`/`getMax()`: O(1) (संबंधित हीप की रूट)।
    • `put(x)`: दोनों हीप्स में डालें, कॉरेस्पॉन्डेंस पॉइंटर सेट करें → O(log n)।
    • `removeMin()`: मिन-हीप से `removeMin()`, मैक्स-हीप से कॉरेस्पॉन्डिंग नोड पर `remove(node)` → O(log n)।
    • `removeMax()`: सममित।

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

2. टोटल कॉरेस्पॉन्डेंस

आधे तत्व मिन-PQ में, आधे मैक्स-PQ में। यदि तत्वों की संख्या विषम है, तो एक तत्व बफर में रहता है।

  • मिन-PQ में प्रत्येक तत्व x का मैक्स-PQ में एक विशिष्ट तत्व y के साथ एक-से-एक कॉरेस्पॉन्डेंस होता है, जहां `priority(x) ≤ priority(y)`।
  • स्पेस: ~n (डुअल स्ट्रक्चर से बेहतर)।
  • जटिलता: एल्गोरिदम अधिक जटिल हैं।

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

3. लीफ कॉरेस्पॉन्डेंस

केवल मिन-PQ और मैक्स-PQ के **लीफ नोड्स** कॉरेस्पॉन्डिंग जोड़े बनाते हैं। नॉन-लीफ नोड्स को कॉरेस्पॉन्डेंस की आवश्यकता नहीं होती।

  • स्पेस: ~n।
  • प्रदर्शन: तीनों में से सबसे तेज़ DEPQ कॉरेस्पॉन्डेंस संरचना।
  • जटिलता: कार्यान्वयन सबसे जटिल।

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

समर्थित आधार संरचनाएं और जटिलता

इन तकनीकों को लागू किया जा सकता है:

  • हीप्स (बाइनरी हीप्स)
  • हाइट-बायस्ड लेफ्टिस्ट ट्रीज़
  • पेयरिंग हीप्स

समय जटिलता

ऑपरेशनहीप्स / लेफ्टिस्ट ट्रीज़पेयरिंग हीप्स
`put(x)`, `removeMin()`, `removeMax()`O(log n)O(log n) परिशोधित
`isEmpty()`, `size()`, `getMin()`, `getMax()`O(1)O(1)
  1. पायथन प्रोग्राम: बबल सॉर्ट एल्गोरिदम पायथन प्रोग्राम: बबल सॉर्ट एल्गोरिदम

    इस लेख में, हम बबल सॉर्ट सॉर्टिंग तकनीक के कार्यान्वयन के बारे में जानेंगे।नीचे दिखाई गई आकृति इस एल्गोरिदम के कार्य को दर्शाती है -दृष्टिकोणपहले तत्व (इंडेक्स = 0) से शुरू करके, वर्तमान तत्व की तुलना सरणी के अगले तत्व से करें।यदि वर्तमान तत्व सरणी के अगले तत्व से बड़ा है, तो उन्हें स्वैप करें।यदि व

  1. पायथन प्रोग्राम: लीनियर सर्च एल्गोरिदम पायथन प्रोग्राम: लीनियर सर्च एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में लीनियर सर्च और इसके कार्यान्वयन के बारे में जानेंगे।एल्गोरिदमदिए गए arr[] के बाएं सबसे तत्व से शुरू करें और एक-एक करके तत्व x की तुलना arr[] के प्रत्येक तत्व से करेंयदि x किसी तत्व से मेल खाता है, तो इंडेक्स मान वापस करें।यदि x, arr[] के किसी भी त

  1. Windows 10 रिकवरी डिस्क बनाएं: अपने PC को रिस्टोर करने के 3 सरल तरीके Windows 10 रिकवरी डिस्क बनाएं: अपने PC को रिस्टोर करने के 3 सरल तरीके

    एक Windows 10 रिकवरी डिस्क आपको अपने Windows 10 PC पर ऑपरेटिंग सिस्टम को रिकवर और रिपेयर करने की अनुमति देती है। जब चीजें गलत हो जाती हैं और आपका PC बूट-अप नहीं कर सकता, तो एक Windows 10 रिपेयर डिस्क आपको मुद्दे को ठीक करने और अपने PC को कार्यशील स्थिति में रिस्टोर करने में मदद करती है। Windows 10 क