"बंद" बनाम "खुला" का उपयोग दर्शाता है कि हम किसी निश्चित स्थिति या डेटा संरचना का उपयोग करने के लिए बंद हैं या नहीं (यह एक बेहद अस्पष्ट वर्णन है, लेकिन उम्मीद है कि शेष मदद करता है)।
उदाहरण के लिए, "खुले पते" में "खुला" हमें सूचकांक (उर्फ पता) बताता है जिस पर हैश तालिका में एक ऑब्जेक्ट संग्रहीत किया जाएगा, हैश कोड द्वारा पूरी तरह से निर्धारित नहीं किया जाता है। इसके बजाए, हैश तालिका में पहले से मौजूद है के आधार पर सूचकांक भिन्न हो सकता है।
"बंद हैशिंग" में "बंद" इस तथ्य को संदर्भित करता है कि हम कभी भी हैश तालिका नहीं छोड़ते हैं; प्रत्येक ऑब्जेक्ट को हैश तालिका की आंतरिक सरणी में सीधे एक अनुक्रमणिका में संग्रहीत किया जाता है। ध्यान दें कि कुछ प्रकार की खुली एड्रेसिंग रणनीति का उपयोग करके यह संभव है। यह बताता है कि क्यों "बंद हैशिंग" और "खुले पते" समानार्थी हैं।
खुले हैंशिंग के साथ इसकी तुलना करें - इस रणनीति में, किसी भी वस्तु को वास्तव में हैश तालिका की सरणी में संग्रहीत नहीं किया जाता है; इसके बजाय एक ऑब्जेक्ट धोने के बाद, यह एक सूची में संग्रहीत होता है जो हैश तालिका की आंतरिक सरणी से अलग होता है। "खुला" हैश टेबल को छोड़कर और एक अलग सूची का उपयोग करके प्राप्त स्वतंत्रता को संदर्भित करता है। वैसे, "अलग सूची" संकेत देती है कि खुले हैंशिंग को "अलग श्रृंखला" के रूप में भी जाना जाता है।
संक्षेप में, "बंद" हमेशा किसी प्रकार की सख्त गारंटी को संदर्भित करता है, जैसे कि जब हम गारंटी देते हैं कि वस्तुओं को हमेशा हैश तालिका (बंद हैशिंग) के भीतर सीधे संग्रहीत किया जाता है। फिर, "बंद" के विपरीत "खुला" है, इसलिए यदि आपके पास ऐसी गारंटी नहीं है, तो रणनीति को "खुला" माना जाता है।
स्रोत
2012-02-03 06:24:58
हमें यह जोड़ना चाहिए कि ओपन हैशिंग (अलग चेनिंग) लिंक की गई सूचियों तक ही सीमित नहीं है, जो कि ओ (एन/2) व्यवहार के टकराव के हमलों पर कैश अनुकूल और विचलित नहीं हैं। आप टकराव की बाल्टी के लिए पेड़ या सॉर्ट किए गए सरणी का भी उपयोग कर सकते हैं। – rurban