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

डेटा स्ट्रक्चर में रैंडमाइज़्ड फिंगर सर्च ट्रीज़ (Randomized Finger Search Trees)

डिटरमिनिस्टिक सर्च ट्रीज़ (Deterministic Search Trees) के दो रैंडमाइज़्ड विकल्प रैंडमाइज़्ड बाइनरी सर्च ट्रीज़, ट्रेप्स (Treaps) और स्किप लिस्ट्स (Skip Lists) हैं। ट्रेप्स और स्किप लिस्ट्स दोनों को सुरुचिपूर्ण डेटा स्ट्रक्चर (Elegant Data Structures) के रूप में परिभाषित किया जाता है, जहां रैंडमाइज़ेशन सरल और कुशल अपडेट ऑपरेशन्स की सुविधा देता है।

इस खंड में हम बताते हैं कि कैसे ट्रेप्स और स्किप लिस्ट्स दोनों को डेटा स्ट्रक्चर को बदले बिना कुशल फिंगर सर्च ट्रीज़ के रूप में लागू किया जा सकता है। दोनों डेटा स्ट्रक्चर फिंगर सर्च का समर्थन अपेक्षित O(log d) समय में करते हैं, जहां अपेक्षाएं डेटा स्ट्रक्चर के निर्माण के दौरान एल्गोरिदम द्वारा किए गए रैंडम विकल्पों पर ली जाती हैं।

स्किप लिस्ट्स (Skip Lists)

स्किप लिस्ट में, कोई एलिमेंट a के लिए नोड से जिसमें एलिमेंट b है, फिंगर सर्च कर सकता है बस इस बिंदु से खोज जारी रखकर। ध्यान दें कि यदि a < b, तो खोज पिछड़े दिशा में आगे बढ़ती है, और यदि a > b, तो खोज आगे की दिशा में आगे बढ़ती है। पिछड़ा हुआ केस स्किप लिस्ट में सामान्य खोज के सममित है, लेकिन आगे का केस वास्तव में अधिक जटिल है। आम तौर पर, स्किप लिस्ट में खोज तेज होने की उम्मीद है क्योंकि सूची की शुरुआत में सेंटिनल को सबसे लंबा नोड माना जाता है। हालांकि, हमारी फिंगर ऊंचाई 1 के नोड से जुड़ी हो सकती है। इसके कारण, हम खोज करने की कोशिश करते हुए शायद ही कभी चढ़ते हैं; ऐसा कुछ जो सामान्य रूप से कभी नहीं होता। हालांकि, इस जटिलता के साथ भी, हम O(log d) अपेक्षित खोज समय प्राप्त करने में सक्षम हैं।

ट्रेप्स (Treaps)

ट्रेप (Treap) को एक रैंडमाइज़्ड बाइनरी सर्च ट्री (Randomized Binary Search Tree - BST) के रूप में परिभाषित किया जाता है। ट्रेप में खोज किसी अन्य BST में एलिमेंट खोजने के समान है। ट्रेप्स में हालांकि यह गुण होता है कि दूरी d के दो एलिमेंट्स के बीच अपेक्षित पथ लंबाई (Expected Path Length) O(log d) होती है। इस प्रकार, एलिमेंट b वाले नोड से एलिमेंट a के लिए फिंगर सर्च करने के लिए, कोई b एलिमेंट से ट्री पर तब तक चढ़ सकता है जब तक एलिमेंट a का पूर्वज (Ancestor) न मिल जाए, जिस बिंदु पर सामान्य BST खोज सामान्य तरीके से आगे बढ़ती है। जबकि यह गणना करना कि क्या एक नोड दूसरे का पूर्वज है, गैर-तुच्छ है, कोई ट्री को इस रूप के क्वेरी का समर्थन करने के लिए बढ़ा सकता है ताकि अपेक्षित O(log d) फिंगर सर्च समय प्रदान किया जा सके।

  1. डेटा संरचना में अंतराल ट्री (Interval Trees) डेटा संरचना में अंतराल ट्री (Interval Trees)

    इस अनुभाग में हम देखेंगे कि अंतराल ट्री (Interval Tree) क्या है। जैसा कि नाम से पता चलता है, अंतराल ट्री वे ट्री हैं जो अंतराल (intervals) से जुड़े होते हैं। इसलिए अंतराल ट्री पर चर्चा करने से पहले, आइए प्राथमिक अंतराल (elementary intervals) देखें। एक अंतराल मूल रूप से एक रेंज है। इसलिए यदि एक अंत

  1. डेटा स्ट्रक्चर में BSP ट्रीज़ डेटा स्ट्रक्चर में BSP ट्रीज़

    कंप्यूटर साइंस में, बाइनरी स्पेस पार्टीशनिंग (BSP) नामक एक विधि को हाइपरप्लेन्स (Hyperplanes) को पार्टीशन के रूप में लागू करके एक स्पेस को दो कन्वेक्स सेट्स (Convex Sets) में पुनरावर्ती रूप से उप-विभाजित (Recursively Subdividing) करने के लिए लागू किया जाता है। उप-विभाजन की यह प्रक्रिया क्षेत्र में व

  1. डेटा स्ट्रक्चर में रेंज ट्रीज़ डेटा स्ट्रक्चर में रेंज ट्रीज़

    रेंज ट्री (Range Tree) को बिंदुओं की सूची रखने के लिए एक क्रमबद्ध ट्री डेटा स्ट्रक्चर (Ordered Tree Data Structure) के रूप में परिभाषित किया जाता है। यह दिए गए रेंज के भीतर सभी बिंदुओं को कुशलतापूर्वक पुनः प्राप्त करने की अनुमति देता है, और आमतौर पर दो या अधिक आयामों में लागू किया जाता है। यह kd-ट्र