कम से कम, हैश टेबल में एक सरणी और हैश फ़ंक्शन शामिल है। जब किसी ऑब्जेक्ट को तालिका में जोड़ा जाता है, तो हैश फ़ंक्शन ऑब्जेक्ट पर गणना की जाती है और यह गणना की गई मान के सूचकांक पर सरणी में संग्रहीत होती है। उदाहरण के लिए, यदि hash(obj) = 2
तो arr[2] = obj
।
हैश तालिका पर औसत डालने/लुकअप O(1)
है।
हालांकि ऑब्जेक्ट्स एक ही हैश मान की गणना करते समय टक्कर लगाना संभव है।
सामान्य मामले में इन टकरावों को संभालने के लिए सरणी के प्रत्येक सूचकांक में "बाल्टी" होती है। मतलब, हैश तालिका के सूचकांक पर सभी तीन वस्तुओं को कुछ अन्य डेटा संरचना (शायद एक लिंक्ड सूची या अन्य सरणी) में संग्रहीत किया जाता है।
इसलिए, हैश तालिका पर लुकअप के लिए सबसे खराब मामला O(n)
है क्योंकि यह संभव है कि हैश तालिका में संग्रहीत सभी ऑब्जेक्ट टकराए और उसी बाल्टी में संग्रहीत हो जाएं।
स्रोत
2013-10-28 04:55:02
हैश तालिका पर लुकअप के लिए सबसे खराब मामला 'ओ (एन) 'है। विचार करें: 'हैश (एक्स) = 3',' हैश (वाई) = 3' 'हैश (जेड) = 3', इत्यादि। –