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

पुनर्संतुलन एल्गोरिदम

पुनर्संतुलन एल्गोरिदम निम्नलिखित तरीके से किया जा सकता है -

डे-स्टाउट-वॉरेन एल्गोरिथम

हम डे-स्टाउट-वॉरेन एल्गोरिथम का उपयोग करके वास्तव में पुनर्संतुलन पद्धति को लागू कर सकते हैं। यह नोड्स की संख्या में रैखिक है।

निम्नलिखित छद्म कोड में मूल DSW एल्गोरिथम की एक प्रस्तुति है।

  • एक नोड आवंटित किया जाता है जिसे "स्यूडो-रूट" कहा जाता है और पेड़ की वास्तविक जड़ को स्यूडो-रूट के सही बच्चे के रूप में बनाते हैं।
  • पेड़-से-बेल फ़ंक्शन को ट्री को सॉर्ट की गई लिंक्ड सूची में बदलने के लिए स्यूडो-रूट के साथ इसके तर्क के रूप में कॉल करें।
  • सॉर्ट की गई लिंक की गई सूची को फिर से पेड़ में बदलने के लिए बेल-टू-ट्री फ़ंक्शन को स्यूडो-रूट और पेड़ के आकार (तत्वों की संख्या) के तर्क के रूप में कॉल करें।
  • छद्म जड़ के दाहिने बच्चे के बराबर पेड़ की वास्तविक जड़ बनाई जानी चाहिए।
  • आखिरकार छद्म जड़ को नष्ट कर दिया जाना चाहिए।

"कॉपी ऑन राइट" ट्री

यदि हम रैखिकता की कमी का सामना कर सकते हैं (अर्थात हम एक मान लिखते हैं, लेकिन जब हम इसके नहीं मिलने के तुरंत बाद इसकी खोज करते हैं, तो यह अंततः मिल जाएगा, लेकिन 100ms-10s के बाद), एक "कॉपी ऑन राइट" ट्री लागू किया जा सकता है:सभी लेखन एक थ्रेड (पुनर्संतुलन के साथ) द्वारा किए जाते हैं, और हम समय-समय पर पेड़ को केवल-पढ़ने के लिए प्रतिलिपि में कॉपी करते हैं जिसे बिना किसी समवर्ती नियंत्रण के धागे को पढ़कर कार्यान्वित किया जा सकता है, हमें इसे परमाणु रूप से प्रकाशित करने की आवश्यकता होती है।

समवर्ती छोड़ें सूची

एक अन्य विकल्प एक समवर्ती स्किप सूची को लागू करना है:यह लॉगरिदमिक औसत केस सर्च/डिलीट/इन्सर्ट समय प्रदान करता है और अधिक आसानी से समानांतर होता है। यदि आप इसे लागू करते हैं तो जावा के लिए एक मानक लॉक-फ्री कार्यान्वयन है। हम समवर्ती स्किप सूचियों और संतुलित खोज ट्री के बारे में अधिक जानकारी यहाँ प्राप्त कर सकते हैं। विशेष रूप से, हम एक रंगीन पेड़ का उल्लेख प्राप्त कर सकते हैं, जिसे एक द्विआधारी खोज पेड़ के रूप में दर्शाया गया है जो समवर्ती पुनर्संतुलन के लिए अनुकूलित है।


  1. 2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

    एक 2-3 पेड़ डेटा संरचनाओं में एक प्रकार का पेड़ है जिसमें पेड़ का प्रत्येक नोड या तो 2 नोड होता है या 3 नोड्स। यह एक विशेष प्रकार का B-Tree . है आदेश 3 के साथ। ट्री में 2 नोड वह होता है जिसमें एक डेटा भाग और दो चाइल्ड नोड होते हैं। ट्री में 3 नोड वह होता है जिसमें दो डेटा भाग और तीन चाइल्ड नोड हो

  1. मल्टी-वे पेड़

    एक मल्टीवे ट्री को एक ऐसे पेड़ के रूप में परिभाषित किया जाता है जिसमें दो से अधिक बच्चे हो सकते हैं। यदि एक मल्टीवे ट्री में अधिकतम m बच्चे हो सकते हैं, तो इस ट्री को ऑर्डर m (या m-way ट्री) का मल्टीवे ट्री कहा जाता है। अन्य पेड़ों की तरह जिनका अध्ययन किया गया है, एम-वे ट्री में नोड्स एम-1 कुंजी फ़

  1. एम-आर्य वृक्ष

    कंप्यूटर विज्ञान में एक एम-आर्य पेड़ को नोड्स के संग्रह के रूप में परिभाषित किया जाता है जिसे सामान्य रूप से निम्न तरीके से पदानुक्रम में दर्शाया जाता है। पेड़ रूट नोड पर शुरू होता है। पेड़ का प्रत्येक नोड अपने चाइल्ड नोड्स के लिए पॉइंटर्स की एक सूची रखता है। चाइल्ड नोड्स की संख्या मी से कम या उसके