बस रैखिक जांच तर्क को समझने की कोशिश कर रहा है।एक ऐसे मान के लिए हैशटेबल खोज रहा है जो ओ (एन) नहीं है? (रैखिक जांच)
खुले पते का उपयोग करके हैशटेबल के साथ, आप कभी भी पुष्टि कैसे कर सकते हैं कि कोई तत्व तालिका में नहीं है।
उदाहरण के लिए, कहें कि आपके पास 10 बाल्टी हैशैप था। मान लीजिए कि आपके पास एक कुंजी है, और इसे डालें। अब, यदि तत्व ए और बी को डाला जाना है और हैश और एक ही बाल्टी को कम करना है तो एक रैखिक जांच का उपयोग करते हुए तत्व ए और बी एक-दूसरे के बगल में होंगे।
अब, सिर्फ इसलिए कि एक बाल्टी खाली है, ऐसा लगता है कि मानचित्र में कोई तत्व मौजूद नहीं है। जैसे तत्व ए को पहले हटा दिए जाने के बाद आप तत्व बी की खोज करते हैं। सबसे पहले आपको एक खाली बाल्टी मिलती है जहां आप बी की अपेक्षा करते हैं, लेकिन आपको एक और जांच करने की आवश्यकता है और आपको बी मिल जाएगा। यह वास्तव में है। यदि वह तर्क सही है तो क्या आपको यह पुष्टि करने के लिए पूरी तालिका खोजनी पड़ेगी कि कोई कुंजी नहीं है? यानी ओ (एन) प्रदर्शन हर बार।
मैं जो कह रहा हूं वह है, क्या आपको पूरे मानचित्र के माध्यम से वास्तव में पुष्टि करने की आवश्यकता नहीं है कि यह वहां नहीं है?
हैशप के लिए एक अलग श्रृंखला दृष्टिकोण के साथ यह समस्या मौजूद नहीं है।
संपादित करें: मैं क्या मतलब इस तस्वीर http://upload.wikimedia.org/wikipedia/commons/b/bf/Hash_table_5_0_1_1_1_1_0_SP.svg
तो जॉन स्मिथ हटा दी जाती है, को देख रहा है और हम सैंड्रा डी का पता लगाने का प्रयास करें।
या रैखिक पते के साथ आप तत्वों को चारों ओर स्थानांतरित करने के लिए हैं ताकि इस तरह के कोई छेद न हो। यानी यदि जॉन स्मिथ हटा दिया गया है तो 152 से 154 के तत्वों को एक स्थान पर वापस ले जाना चाहिए? यह वास्तव में वर्णन में नहीं देखता है लेकिन इससे कुछ समझ हो सकती है। सिवाय इसके कि टेड बेकर 154 तक और 153 के अनुसार वर्णित नहीं है। मैंने सोचा की तुलना में थोड़ा और काम की आवश्यकता है।
बस प्रत्येक बाल्टी पर एक साधारण लिंक्ड सूची के साथ जा सकते हैं।
हैश टेबल पर एक महान ट्यूटोरियल मिला। http://research.cs.vt.edu/AVresearch/hashing/ – Matt