इस सवाल का पहले से ही एक उत्तर है: < / P>
- 13 उत्तर
- हम्सपैप्स या ट्रेमैप्स का उपयोग कब करना है?
मुझे पता है कि जब मैं ज़रूरत हो तब तत्वों पर पुनरावृति करने के लिए मैं ट्रीमार्क का उपयोग कर सकता हूं उन्हें हल किया जाना है लेकिन क्या ये है? जब मैं मैप्स, या कुछ इष्टतम विशिष्ट उपयोगों से परामर्श करना चाहता हूं, तो कोई अनुकूलन नहीं है?
हैशबल ( आमतौर पर)
O (n) & lt; = T (n) & lt; = O (1) की जटिलता के भीतर घूमते हुए खोज ऑपरेशन (लुक अप) करें,
O की औसत केस जटिलता के साथ (1 + एन / के) ; हालांकि, द्विआधारी खोज पेड़, (बीएसटी),
O (n) & lt; = T (n) & lt; = O (log_2 (n)) की जटिलता के भीतर घिरा खोज ऑपरेशन (लुकअप)
O (log_2 (n)) की औसत केस जटिलता के साथ । प्रत्येक (और हर) डेटा संरचना के लिए कार्यान्वयन फायदे, कमियां, संचालन की समय जटिलता और कोड जटिलता को समझने के लिए (आपके द्वारा) जाना चाहिए।
उदाहरण के लिए, एक हैशटेबल में प्रविष्टियों की संख्या में अक्सर टकराव की सूचियों के साथ कुछ निश्चित प्रविष्टियों की संख्या होती है (जिनमें से कुछ को पूरा नहीं किया जा सकता) दूसरी तरफ पेड़, आमतौर पर दो नोड्स (संदर्भ) प्रति नोड होते हैं, लेकिन यह अधिक हो सकता है कि यदि क्रियान्वयन दो नोड से अधिक दो नोडों की अनुमति देता है, और इस वृक्ष को नोड्स के रूप में विकसित करने की अनुमति देता है, लेकिन यह अनुमति नहीं दे सकता है डुप्लिकेट। (जावा ट्रीमार्क का डिफ़ॉल्ट कार्यान्वयन डुप्लिकेट के लिए अनुमति नहीं देता है)
विशेष मामलों पर भी विचार करना है, उदाहरण के लिए, यदि किसी विशेष डेटा संरचना में तत्वों की संख्या बाउंड के बिना बढ़ जाती है या डेटा संरचना के एक अंतर्निहित भाग की सीमा? क्या रिफाल्टिंग या क्लीनअप ऑपरेशन करने वाले परिशोधन कार्यों के बारे में?
उदाहरण के लिए, हैशटबल में, जब तालिका में तत्वों की संख्या पर्याप्त रूप से बड़ी हो जाती है, और आक्रामक संख्याओं की टक्कर हो सकती हैं दूसरी ओर, पेड़ आमतौर पर एक सम्मिलन (या हटाने) के बाद फिर से संतुलन प्रक्रिया की आवश्यकता होती है।
अतः, यदि आपके पास कैश की तरह कुछ है (पूर्व। में तत्वों की संख्या, या आकार ज्ञात है) तो एक हैशटेबल शायद आपका सबसे अच्छा शर्त है; हालांकि, यदि आपके पास एक शब्दकोश की तरह कुछ और है (एक बार आबादी वाला और कई बार देखा जाता है) तो मैं एक पेड़ का उपयोग करूँगा
यह केवल सामान्य मामले में है, हालांकि, (कोई जानकारी नहीं दी गई थी)। आपको प्रक्रिया को समझना होगा कि वह किस प्रकार का डेटा संरचना का उपयोग करने के निर्णय लेने में सही विकल्प बनाने के लिए होता है।
जब मुझे एक बहु-मानचित्र (लुकअप लुकअप) की आवश्यकता होती है या किसी संग्रह को सपाट कर दिया जाता है, तो यह एक हैशटेबल नहीं हो सकता।
- हम्सपैप्स या ट्रेमैप्स का उपयोग कब करना है?
Comments
Post a Comment