2012-06-10 36 views
13

मैं कोशिश करता हूं और टर्नरी सर्च पेड़ के माध्यम से चला गया हूं, और मेरे पास उनके कुछ प्रश्न हैं। मैंने जवाब के लिए गुगल किया है लेकिन मैं उन लोगों के लिए ठोस जवाब प्राप्त नहीं कर पा रहा हूं। तो, यहां मेरे प्रश्न हैं।स्वत: पूर्ण के लिए बनाम टर्नरी खोज पेड़ की कोशिश करता है?

  1. की कोशिश करता अंतरिक्ष अक्षम हैं और TSTs BST और कोशिश करता का सबसे अच्छा जोड़ देते हैं तो करता है कि मतलब की कोशिश करता व्यावहारिक रूप से सब पर इस्तेमाल नहीं करते?

  2. मानते हैं कि टीएसटी का स्वत: पूर्णता के लिए उपयोग किया जाता है, .. यह Google के मामले में कैसे काम करेगा? मेरा मतलब है कि व्यावहारिक रूप से हमारे पास शब्दों का एक निश्चित सेट नहीं है, .. तो टीएसटी के लिए पेड़ कैसे बनाया जाएगा?

+1

क्या आपने पेट्रीसिया ट्राईज़ में भी देखा है? ऐसा लगता है कि वे एक ट्री और एक टीएसटी के बीच मध्य मैदान हैं। – Justin

उत्तर

13

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

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

तो क्रम में, न तो संरचना दूसरे की तुलना में सख्ती से बेहतर है। यह इस बात पर निर्भर करता है कि कौन से शब्द संग्रहीत किए जा रहे हैं।

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

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

आशा है कि इससे मदद मिलती है!

+5

*** मामलों में जहां Trie में प्रत्येक नोड के लिए इस्तेमाल किया अपने बच्चों के सबसे है के लिए, Trie काफी अधिक अंतरिक्ष कुशल और समय त्रिगुट खोज पेड़ से कुशल है। तो प्रत्येक नोड भंडार अपेक्षाकृत कम बच्चे नोड्स, त्रिगुट खोज पेड़ भी बहुत कुछ अंतरिक्ष कुशल है। *** 'Trie' के मामले में प्रत्येक नोड ऊपर संकेत है, जो स्मृति और इसलिए अंतरिक्ष अक्षम के बहुत सारे मतलब k को हो सकता है। लेकिन कुछ बच्चे नोड्स प्रति नोड के मामले में, ऐरे के बजाय सूची या मानचित्र जैसे डायनामिक संग्रह का उपयोग करके अंतरिक्ष को बचाया जा सकता है। इसलिए प्रति नोड कुछ बच्चे नोड्स होने पर भी अंतरिक्ष के मामले में कोशिश खराब नहीं होती है। –

+2

@MeenaChaudhary यही सच है, हालांकि इन डेटा संरचनाओं कम समय के लिए एक मानक सरणी से कुशल हैं। सब कुछ एक व्यापार है! – templatetypedef