WHY specifically chaining? Do key strategies hain:
Open addressing — sab kuch array ke andar store karo, next free slot ke liye probe karo.
Chaining — har slot ke liye ek alag container (ek linked list) rakho.
Chaining tab choose ki jaati hai jab hum chahte hain: simple deletion, table ke crowded hone par graceful behavior, aur koi clustering ka jhanjhat nahi.
m mein constant add karne ki jagah double kyun karo? → Geometric series O(1) amortized deti hai vs O(n).
Chained lookup ka worst case kya hai aur kab hota hai? → O(n), jab saari keys ek hi chain mein collide ho jaayein.
Kya chaining α=1 pe break ho jaati hai? → Nahi, sirf open addressing karta hai; chaining gracefully degrade hoti hai.
Recall Feynman: ek 12-saal ke bachche ko explain karo
Socho ek diwar pe mailboxes hain jinhein 0–9 number diye gaye hain. Ek rule (hash) har letter ko batata hai ki woh kis box mein jaayega. Kabhi kabhi do letters ek hi box mein jaate hain — toh har box ke andar tum ek chhoti letters ki string clip karke rakhte ho (linked list). Koi letter dhundne ke liye, us ke box mein jao aur woh chhoti string flip karo. Agar boxes bahut crowded ho jaayein (average mein bahut zyada letters per box — yahi load factor hai), toh tum double boxes wali badi diwar khareedte ho aur saari letters phir se sort karte ho taaki har box halka ho. Halke boxes = fast dhundna.
O(n), jab saari keys ek hi bucket mein hash ho jaayein (ek lambi chain).
Resize pe fixed number of slots add karne ki jagah table size double kyun karo?
Doubling total rehash work ko ek geometric series ≤2n banata hai, jo O(1) amortized insert deta hai; constant growth Θ(n2) total deta hai → Θ(n) per insert.
Rehashing mein kya hota hai?
Ek bada array (e.g. 2m) allocate karna aur har key ke liye h(k)modm′ recompute karna, unhe sab dobara insert karna.
Kya chaining α=1 pe kaam karna band kar deti hai?
Nahi — sirf open addressing α=1 pe fill up hoti hai; chaining kaam karti rehti hai aur sirf α mein linearly slow hoti hai.
Chaining mein insertion (duplicate check ke bina) O(1) kyun hai?
Tum hash compute karte ho aur bucket ki list ke head pe node prepend karte ho.
Expected O(1+α) kaunsa assumption deta hai?
Simple Uniform Hashing: har key equally aur independently m slots mein se kisi pe bhi hash ho sakti hai.