2011-09-19 11 views
7

मैं कुछ कंक्रीट (लेमेन; गैर सुपर-अकादमिक) विभिन्न प्रकार के हैश डेटा संरचनाओं, विशेष रूप से हैश टेबल, हैश सूचियों और हैश मानचित्रों के लिए परिभाषाओं को खोजने का प्रयास कर रहा हूं। ऑनलाइन खोज इन सभी के लिए कई उपयोगी लिंक प्रदान करती है, लेकिन कभी-कभी दूसरों के उपयोग के लिए उचित होने पर स्पष्ट परिभाषाएं नहीं देतीं।हैश: टेबल्स, सूचियां और मानचित्र, ओह माय?

(1) व्यावहारिक दृष्टिकोण से, इन 3 के बीच क्या अंतर है?

(2) उनके संचालन के रन का समय अलग-अलग कैसे होता है? क्या ऐसे स्पष्ट उदाहरण हैं जब किसी का उपयोग किया जाना चाहिए या अन्य प्रकार के हैंशों से बचा जाना चाहिए?

(3) इनमें से प्रत्येक मानचित्र एडीटी से कैसे संबंधित है? क्या वे सभी इसके अलग-अलग कार्यान्वयन हैं, या अलग-अलग जानवरों को पूरी तरह से?

यहां किसी भी अंतर्दृष्टि के लिए धन्यवाद!

+1

विकिपीडिया पर जो उपलब्ध है, उसे देखते हुए, मुझे यकीन नहीं है कि इसे क्यों चुना जा रहा है - यह "अनुसंधान प्रयास दिखाता है" परीक्षण में विफल रहता है। –

+0

क्योंकि यह एक अच्छा सवाल है जो एसओ समुदाय की अच्छी तरह से गोल करने में योगदान देता है, एड स्टैब! – IAmYourFaja

+0

जावा बिंदु दृश्य से ओका के उत्तर को पूरक: http://stackoverflow.com/questions/40471/java-hashmap-vs-hashtable –

उत्तर

2

एक सार डेटा संरचना है जिसमें कुंजी और मूल्यों के बीच मैपिंग शामिल है। इसमें Map, Dictionary, Table, Association Table, और अधिक सहित कई अलग-अलग नाम हैं।

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

इस डेटा संरचना के लिए उपलब्ध कई कार्यान्वयनों में से कुछ सबसे लोकप्रिय लोग तेजी से पहुंचने के लिए hash functions का उपयोग करते हैं। उन कार्यान्वयन को कभी-कभी Hash Table या Hash Map नाम से बुलाया जाता है, आप read more about them in Wikipedia कर सकते हैं। प्रदर्शन हैश टेबल कार्यान्वयन के बीच भी भिन्न होता है, कुछ कुछ अमूर्त ओ (1) सम्मिलन और पहुंच जटिलता तक पहुंचते हैं (उपयोग की जाने वाली बहुत सारी जगहों के मूल्य के लिए)।

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

+0

बहुत बढ़िया! आपको बहुत - बहुत धन्यवाद! – IAmYourFaja

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