2011-01-29 17 views
12

मैंने T-trees और बी-बी + पेड़ों की परिभाषाओं की खोज की है। वेब पर कागजात से मैं समझता हूं कि बी-पेड़ पदानुक्रमित स्मृति, जैसे डिस्क ड्राइव और कैश मेमोरी में बेहतर प्रदर्शन करते हैं।बी +/-पेड़ पर टी-पेड़ के क्या फायदे हैं?

मुझे क्या समझ में नहीं आ रहा है कि क्यों टी-पेड़ फ्लैट मेमोरी के लिए भी इस्तेमाल किए जाते थे?

उन्हें एवीएल पेड़ों के लिए अंतरिक्ष कुशल विकल्प के रूप में विज्ञापित किया जाता है।

सबसे बुरे मामले में, टी-पेड़ के सभी पत्ते नोड्स में केवल एक तत्व होता है और सभी आंतरिक नोड्स में न्यूनतम राशि होती है, जो पूर्ण होने के करीब होती है। इसका मतलब है कि औसत आवंटित स्थान का केवल आधा उपयोग किया जाता है। जब तक मैं गलत नहीं हूं, यह बी-पेड़ के सबसे बुरे मामले के समान उपयोग है, जब बी-पेड़ के नोड आधा भरा होता है।

मानते हैं कि दोनों पेड़ नोड्स में स्थानीय रूप से चाबियाँ संग्रहीत करते हैं, लेकिन रिकॉर्ड का संदर्भ देने के लिए पॉइंटर्स का उपयोग करते हैं, केवल अंतर यह है कि बी-पेड़ को प्रत्येक शाखा के लिए पॉइंटर्स स्टोर करना होता है। चाबियों के आकार के आधार पर यह आमतौर पर 50% ओवरहेड या कम (टी-पेड़ों पर) का कारण बनता है। असल में, यह एवीएल पेड़ों में अपेक्षित ओवरहेड के करीब है, कोई अभिभावक सूचक नहीं, नोड्स में एम्बेडेड रिकॉर्ड, रिकॉर्ड में एम्बेडेड कुंजी। क्या यह अपेक्षित दक्षता लाभ है जो हमें इसके बजाय बी-पेड़ों का उपयोग करने से रोकता है?

टी-पेड़ आमतौर पर एवीएल पेड़ के शीर्ष पर लागू होते हैं। एवीएल पेड़ बी-पेड़ से अधिक संतुलित होते हैं। क्या यह टी-पेड़ के आवेदन से जुड़ा जा सकता है?

उत्तर

3

मैं आपको एक व्यक्तिगत कहानी दे सकता हूं जिसमें उत्तर का आधा हिस्सा शामिल है, यानी, मैंने कुछ 18 साल पहले प्रोग्राम B+ trees पर कुछ पास्कल कोड क्यों लिखा था।

मेरा लक्ष्य सिस्टम दो डिस्क ड्राइव वाला एक पीसी था, मुझे गैर अस्थिर स्मृति पर एक इंडेक्स स्टोर करना पड़ा और मैं समझना चाहता था कि मैं विश्वविद्यालय में क्या सीख रहा था। मैं एक वाणिज्यिक पैकेज, शायद डीबेस III, या कुछ फॉक्स उत्पाद के प्रदर्शन से असंतुष्ट था, मुझे याद नहीं है।

किसी भी तरह:

  • देखने
  • प्रविष्टि
  • विलोपन
  • अगले आइटम
  • पिछले आइटम

  • सूचकांक के

    अधिकतम आकार ज्ञात नहीं था

    : मैं इन आपरेशनों की जरूरत
  • तो डेटा डिस्क
  • समर्थन करने के लिए प्रत्येक पहुँच उच्च लागत
  • एक पूरे ब्लॉक को पढ़ना एक बाइट पढ़ने के रूप में खर्च ही

बी + -trees कि छोटे धीमी पीसी वास्तव में उड़ कर दिया था पर निवास करना पड़ा डेटा के माध्यम से!

पत्तियों में दो अतिरिक्त पॉइंटर्स थे इसलिए उन्होंने अनुक्रमिक खोजों के लिए एक दोगुनी लिंक्ड सूची बनाई।

+0

प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। यह पहला है और मैं इसकी सराहना करता हूं। अगर कोई टी-पेड़ों की विशेषताओं पर टिप्पणी करता है तो मैं सवाल खुलता हूं। मुझे पता है कि वे फैशन से बाहर हैं, इसलिए उनमें से कुछ लोग रुचि रखते हैं, लेकिन उनके पास विकिपीडिया पर अपना स्वयं का पृष्ठ है। मैंने सोचा कि उनके पास कुछ उचित विशेषताएं होनी चाहिए। एक बार फिर धन्यवाद। – simeonz

2

असल में अंतर आपके द्वारा उपयोग की जाने वाली प्रणाली में निहित है। जैसा कि विश्वविद्यालय में मेरे शिक्षक ने टिप्पणी की: यदि आपकी समस्या स्मृति की कमी में निहित है, या एचडीडी कमी में यह निर्धारित करेगा कि कौन सा पेड़ और किस कार्यान्वयन में आप इसका उपयोग करेंगे। शायद यह बी + पेड़ होगा।

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

संबंधित मुद्दे