रेडिक्स हीप: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
रेडिक्स हीप [[मोनोटोन प्राथमिकता कतार]] के संचालन को साकार करने के लिए [[डेटा संरचना]] है। तत्वों का सेट जिसके लिए कुंजी सौंपी गई है, उसे प्रबंधित किया जा सकता है। संचालन का रन टाइम सबसे बड़ी और सबसे छोटी कुंजी या स्थिरांक के बीच के अंतर पर निर्भर करता है। डेटा संरचना में मुख्य रूप से बकेट की श्रृंखला होती है, जिसका आकार तेजी से बढ़ता है।
रेडिक्स हीप [[मोनोटोन प्राथमिकता कतार|मोनोटोन प्राथमिकता क्यू]] के ऑपरेशन को साकार करने के लिए एक [[डेटा संरचना]] है। अवयवों का समूह जिसके लिए कुंजी निर्दिष्ट की गई है, उसे प्रबंधित किया जा सकता है। ऑपरेशन का रन टाइम सबसे बड़ी और सबसे छोटी कुंजी या स्थिरांक के बीच के अंतर पर निर्भर करता है। डेटा संरचना में मुख्य रूप से बकेट की श्रृंखला होती है, जिसका आकार तीव्रता से बढ़ता है।


==आवश्यकताएँ==
==आवश्यकताएँ==
# सभी कुंजियाँ [[प्राकृतिक संख्या]]एँ हैं;
# सभी कुंजियाँ [[प्राकृतिक संख्या]]एँ हैं;
# अधिकतम. कुंजी - न्यूनतम. चाबी <math>\le</math> स्थिरांक C के लिए C;
# मैक्स. कुंजी - मिन. स्थिरांक C के लिए कुंजी <math>\le</math> C;
# हीप_(डेटा_स्ट्रक्चर)#ऑपरेशंस|एक्सट्रैक्ट-मिन ऑपरेशन मोनोटोनिक है; अर्थात्, क्रमिक एक्स्ट्रैक्ट-मिन कॉल्स द्वारा लौटाए गए मान एकरस रूप से बढ़ रहे हैं।
# एक्सट्रैक्ट-मिन ऑपरेशन मोनोटोनिक है; अर्थात्, क्रमिक एक्स्ट्रैक्ट-मिन कॉल्स द्वारा लौटाए गए मान मोनोटोनिक रूप से बढ़ रहे हैं।


==डेटा संरचना का विवरण==
==डेटा संरचना का विवरण==
तीन सबसे महत्वपूर्ण [[क्षेत्र (कंप्यूटर विज्ञान)]] हैं:
तीन सबसे महत्वपूर्ण [[क्षेत्र (कंप्यूटर विज्ञान)]] हैं:
# <math>b</math> आकार का <math>B := \lfloor log(C+1)\rfloor + 1</math>, न्यूनतम सूचकांक के रूप में 0 के साथ, बाल्टियाँ संग्रहीत करता है;
# आकार <math>B := \lfloor log(C+1)\rfloor + 1</math> का <math>b</math>, न्यूनतम सूचकांक के रूप में 0 के साथ, बकेट को संग्रहीत करता है;
# <math>u</math> आकार का <math>B+1</math>, न्यूनतम सूचकांक के रूप में 0 के साथ, बाल्टियों की (निचली) सीमाओं को संग्रहीत करें;
# आकार <math>B+1</math> का <math>u</math>, न्यूनतम सूचकांक के रूप में 0 के साथ, बकेट की (निचली) सीमाओं को संग्रहीत करें;
# <math>bNum</math>, प्रत्येक तत्व के लिए धारण करता है <math>x</math> ढेर में वह बाल्टी जिसमें वह संग्रहीत है।
# <math>bNum</math>, हीप में प्रत्येक अवयव <math>x</math> के लिए वह बकेट रखता है जिसमें वह संग्रहीत है।


[[Image:RadixHeap1.png]]उपरोक्त चित्र डेटा संरचना को दर्शाता है। निम्नलिखित अपरिवर्तनीय लागू होते हैं:
[[Image:RadixHeap1.png]]


# <math>u[i] \le</math> में कुंजी <math>b[i] < u[i+1]</math>: अंदर की चाबियाँ <math>b[i]</math> में मान के माध्यम से ऊपर या नीचे होते हैं <math>u[i+1]</math> या <math>u[i]</math> सीमित।
उपरोक्त चित्र डेटा संरचना को दर्शाता है। निम्नलिखित अपरिवर्तनीय लागू होते हैं:
# <math>u[0] = 0, u[1] = u[0] + 1, u[B] = \infty</math> और <math>0 \le u[i+1]-u[i] \le 2^{i-1}</math> के लिए <math>i = 1, \ldots, B-1</math>: बाल्टियों का आकार तेजी से बढ़ता है।


सीमाओं की घातीय वृद्धि (और इस प्रकार बाल्टी की सीमा) पर ध्यान देना महत्वपूर्ण है। इस प्रकार फ़ील्ड मात्राओं की लघुगणकीय निर्भरता मान C की होती है, जो दो प्रमुख मानों के बीच अधिकतम अंतर है।
# <math>b[i] < u[i+1]</math> में <math>u[i] \le</math> कुंजी: <math>b[i]</math> में कुंजियाँ <math>u[i+1]</math> या <math>u[i]</math> में मान के माध्यम से ऊपर या नीचे सीमित होती हैं।
# <math>i = 1, \ldots, B-1</math> के लिए <math>u[0] = 0, u[1] = u[0] + 1, u[B] = \infty</math> और <math>0 \le u[i+1]-u[i] \le 2^{i-1}</math>: बकेट का आकार तीव्रता से बढ़ता है।


==संचालन==
सीमाओं की घातीय वृद्धि (और इस प्रकार बकेट की सीमा) पर ध्यान देना महत्वपूर्ण है। इस प्रकार क्षेत्र मात्राओं की लघुगणकीय निर्भरता मान C की होती है, जो दो प्रमुख मानों के बीच मैक्स अंतर है।


आरंभीकरण के दौरान, खाली बकेट और निचली सीमाएं उत्पन्न होती हैं <math>u</math> उत्पन्न होते हैं (अपरिवर्तनीय 2 के अनुसार); कार्यकारी समय <math>O(B)</math>.
==ऑपरेशन==


सम्मिलित करते समय, नया तत्व <math>x</math> बाल्टियों और नए तत्व के माध्यम से रैखिक रूप से दाएं से बाएं ओर ले जाया जाता है <math>k(x)</math> उसके बायीं ओर की बाल्टी में संग्रहित किया जाता है <math>u[i] \ge k(x)</math>; कार्यकारी समय <math>O(B)</math>.
आरंभीकरण के समय, रिक्त बकेट उत्पन्न होते हैं और निचली सीमा <math>u</math> उत्पन्न होती है (अपरिवर्तनीय 2 के अनुसार); संचालन समय <math>O(B)</math>


कमी-कुंजी के लिए, पहले कुंजी मान घटाया जाता है (अपरिवर्तनीयों के अनुपालन की जाँच करना)। फिर <math>bNum</math> फ़ील्ड का उपयोग तत्व का पता लगाने के लिए किया जाता है और यदि आवश्यक हो, तो इसे सम्मिलित ऑपरेशन के अनुरूप बाईं ओर दोहराया जाता है। चलने का समय है <math>O(1)</math> (परिशोधन)
इन्सर्ट के समय, नवीन अवयव <math>x</math> बकेट के माध्यम से दाएं से बाएं ओर रैखिक रूप से ले जाया जाता है और <math>k(x)</math> वाला नवीन अवयव बाएं बकेट में उस <math>u[i] \ge k(x)</math>में संग्रहीत किया जाता है; संचालन समय <math>O(B)</math>।


एक्सट्रेक्ट-मिन ऑपरेशन बकेट से तत्व को हटा देता है <math>b[0]</math> और उसे वापस कर देता है. यदि बाल्टी <math>b[0]</math> अभी तक खाली नहीं है, कार्रवाई समाप्त हो गई है। यदि, तथापि, यह खाली है, तो अगली बड़ी गैर-रिक्त बाल्टी की खोज की जाती है, जो इसका सबसे छोटा तत्व है <math>k</math> ट्रैक किया गया और <math>u[0]</math> k पर सेट है (इसके लिए नीरसता आवश्यक है)। फिर, अपरिवर्तनीयों के अनुसार, बाल्टी की सीमाओं को फिर से परिभाषित किया जाता है और तत्वों को हटा दिया जाता है <math>b[i]</math> नवगठित बाल्टियों के लिए; कार्यकारी समय <math>O(1)</math> (परिशोधन)
निम्न-कुंजी के लिए, पहले कुंजी मान घटाया जाता है (अपरिवर्तनीयों के अनुपालन की जाँच करना)। फिर <math>bNum</math> क्षेत्र का उपयोग अवयव का पता लगाने के लिए किया जाता है और यदि आवश्यक हो, तो इसे सम्मिलित ऑपरेशन के अनुरूप बाईं ओर दोहराया जाता है। संचालन समय <math>O(1)</math> (परिशोधन) है।


यदि प्रदर्शित हो, तो फ़ील्ड <math>bNum</math> यह अद्यतित है।
एक्सट्रेक्ट-मिन ऑपरेशन बकेट <math>b[0]</math> से एक अवयव को हटाता है और उसे वापस कर देता है। यदि बकेट <math>b[0]</math> अभी तक रिक्त नहीं है, तो ऑपरेशन समाप्त हो गया है। यदि, तथापि, यह रिक्त है, तो अगली बड़ी गैर-रिक्त बकेट की खोज की जाती है, इसके सबसे छोटे अवयव <math>k</math> को ट्रैक किया जाता है और <math>u[0]</math> को k पर समूहित किया जाता है (इसके लिए मोनोटोनिसिटी आवश्यक है)। फिर, अपरिवर्तनीयों के अनुसार, बकेट की सीमाओं को फिर से परिभाषित किया जाता है और अवयवों को नवनिर्मित बकेट <math>b[i]</math> हटा दिया जाता है; संचालन का समय <math>O(1)</math> (परिशोधन)।
 
यदि प्रदर्शित होता है, तो क्षेत्र <math>bNum</math> अपडेट किया जाता है।


==संदर्भ==
==संदर्भ==

Revision as of 22:28, 23 July 2023

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

आवश्यकताएँ

  1. सभी कुंजियाँ प्राकृतिक संख्याएँ हैं;
  2. मैक्स. कुंजी - मिन. स्थिरांक C के लिए कुंजी C;
  3. एक्सट्रैक्ट-मिन ऑपरेशन मोनोटोनिक है; अर्थात्, क्रमिक एक्स्ट्रैक्ट-मिन कॉल्स द्वारा लौटाए गए मान मोनोटोनिक रूप से बढ़ रहे हैं।

डेटा संरचना का विवरण

तीन सबसे महत्वपूर्ण क्षेत्र (कंप्यूटर विज्ञान) हैं:

  1. आकार का , न्यूनतम सूचकांक के रूप में 0 के साथ, बकेट को संग्रहीत करता है;
  2. आकार का , न्यूनतम सूचकांक के रूप में 0 के साथ, बकेट की (निचली) सीमाओं को संग्रहीत करें;
  3. , हीप में प्रत्येक अवयव के लिए वह बकेट रखता है जिसमें वह संग्रहीत है।

RadixHeap1.png

उपरोक्त चित्र डेटा संरचना को दर्शाता है। निम्नलिखित अपरिवर्तनीय लागू होते हैं:

  1. में कुंजी: में कुंजियाँ या में मान के माध्यम से ऊपर या नीचे सीमित होती हैं।
  2. के लिए और : बकेट का आकार तीव्रता से बढ़ता है।

सीमाओं की घातीय वृद्धि (और इस प्रकार बकेट की सीमा) पर ध्यान देना महत्वपूर्ण है। इस प्रकार क्षेत्र मात्राओं की लघुगणकीय निर्भरता मान C की होती है, जो दो प्रमुख मानों के बीच मैक्स अंतर है।

ऑपरेशन

आरंभीकरण के समय, रिक्त बकेट उत्पन्न होते हैं और निचली सीमा उत्पन्न होती है (अपरिवर्तनीय 2 के अनुसार); संचालन समय

इन्सर्ट के समय, नवीन अवयव बकेट के माध्यम से दाएं से बाएं ओर रैखिक रूप से ले जाया जाता है और वाला नवीन अवयव बाएं बकेट में उस में संग्रहीत किया जाता है; संचालन समय

निम्न-कुंजी के लिए, पहले कुंजी मान घटाया जाता है (अपरिवर्तनीयों के अनुपालन की जाँच करना)। फिर क्षेत्र का उपयोग अवयव का पता लगाने के लिए किया जाता है और यदि आवश्यक हो, तो इसे सम्मिलित ऑपरेशन के अनुरूप बाईं ओर दोहराया जाता है। संचालन समय (परिशोधन) है।

एक्सट्रेक्ट-मिन ऑपरेशन बकेट से एक अवयव को हटाता है और उसे वापस कर देता है। यदि बकेट अभी तक रिक्त नहीं है, तो ऑपरेशन समाप्त हो गया है। यदि, तथापि, यह रिक्त है, तो अगली बड़ी गैर-रिक्त बकेट की खोज की जाती है, इसके सबसे छोटे अवयव को ट्रैक किया जाता है और को k पर समूहित किया जाता है (इसके लिए मोनोटोनिसिटी आवश्यक है)। फिर, अपरिवर्तनीयों के अनुसार, बकेट की सीमाओं को फिर से परिभाषित किया जाता है और अवयवों को नवनिर्मित बकेट हटा दिया जाता है; संचालन का समय (परिशोधन)।

यदि प्रदर्शित होता है, तो क्षेत्र अपडेट किया जाता है।

संदर्भ