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

BSP ट्री एक बहु-आयामी खोज संरचना के रूप में

स्थानिक खोज संरचनाएं उन्हीं विचारों पर आधारित हैं जिनका आविष्कार कंप्यूटर विज्ञान में 60 और 70 के दशक के दौरान ज्यामितीय डेटा के विपरीत, प्रतीकात्मक डेटा के बड़े सेट को जल्दी से संसाधित करने की समस्या को हल करने के लिए किया गया था, उदाहरण के लिए लोगों के नामों की सूची। यह आविष्कार किया गया था कि पहले वर्णमाला के अनुसार नामों की एक सूची को क्रमबद्ध करके, और एक सरणी में क्रमबद्ध सूची को संग्रहीत करके, कोई यह गणना कर सकता है कि क्या कोई नया नाम पहले से ही लॉग 2 एन संचालन में n / 2 के बजाय बाइनरी सर्च एल्गोरिदम का उपयोग करके सूची में है। अनुक्रमिक खोज की सहायता से अपेक्षित संचालन अपेक्षित हैं। नामों की सूची में मौजूद संरचना (वर्णमाला क्रम) को निकालने और गणना को कम करने के लिए बाद के संचालन (नाम की तलाश में) में उस संरचना का शोषण करने के लिए यह एक अच्छा उदाहरण है।

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

बाइनरी सर्च ट्री के मामले में, जहां इसे वास्तविक रेखा पर स्थित ए ={1, 2, 5, 6, 7, 9} जैसे पूर्णांक के एक सेट का प्रतिनिधित्व करने के लिए कार्यान्वित किया जा रहा है। यह गणना करने के लिए कि क्या कोई संख्या/बिंदु पहले से ही ट्री में है, कोई व्यक्ति ट्री में बिंदु डालने में सक्षम है और बिंदु से युक्त नेस्टेड अंतरालों के अनुक्रम के अनुरूप पथ का अनुसरण करने में सक्षम है। एक संतुलित पेड़ के लिए, यह प्रक्रिया O(log n) चरणों से अधिक नहीं लेगी; वास्तव में, हमने एक बाइनरी खोज की है, लेकिन एक सरणी के बजाय एक पेड़ को लागू कर रहा है। अब, ट्री स्वयं खोज एल्गोरिथम के एक हिस्से को एन्कोड करने में सक्षम है क्योंकि यह उस क्रम को तय करता है जिसमें खोज आगे बढ़ती है।

यह अब हमें पार्टिशनिंग ट्री पर वापस लाता है, उन्हें बाइनरी सर्च ट्री के आयामों के सामान्यीकरण के रूप में माना जाता है> 1 यानी बहु-आयामी (1 डी में, वे अनिवार्य रूप से समान हैं)। वास्तव में, पार्टिशनिंग ट्री बनाने की कल्पना त्वरित सॉर्ट के ज्यामितीय संस्करण के रूप में की जा सकती है।

मर्ज सॉर्ट में मर्ज की गई सूचियों को मर्ज करने के समान, पेड़ों को मर्ज करके परिवर्तन (हटाना और सम्मिलन) प्राप्त किया जाता है।

हालांकि, चूंकि बिंदु किसी भी आयाम> 1 के लिए स्थान को विभाजित नहीं करते हैं, इसलिए हमें उन बिंदुओं के बजाय हाइपरप्लेन को लागू करना चाहिए जिनके द्वारा उप-विभाजित किया जाना है।

हाइपरप्लेन हमेशा एक क्षेत्र को दो आधे स्थानों में विभाजित या विभाजित करते हैं, चाहे उनका आयाम कुछ भी हो।


  1. डेटा संरचना में बसपा पेड़

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

  1. डेटा संरचना में पेड़ों की श्रेणी

    एक श्रेणी ट्री को बिंदुओं की सूची रखने के लिए एक आदेशित ट्री डेटा संरचना के रूप में परिभाषित किया गया है। यह किसी दी गई सीमा के भीतर सभी बिंदुओं को कुशलता से पुनर्प्राप्त करने की अनुमति देता है, और आमतौर पर दो या उच्च आयामों में लागू किया जाता है। O(logd . के तेज़ क्वेरी समय को छोड़कर यह kd-tree के

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

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