hash map तब चुनिए जब आपको सिर्फ key से lookup, insert और delete चाहिए और average constant time चाहिए। balanced tree तब चुनिए जब आपको क्रम चाहिए: range scans, सबसे नजदीकी key, या sorted क्रम में घूमना, वह भी logarithmic time में। tree आपको worst case व्यवहार का भरोसा भी देता है, जबकि hash map खराब hashing से बहुत बिगड़ सकता है या गलत वक्त पर resize में अटक सकता है।
इंटरव्यूअर यह क्यों पूछते हैं
यह सवाल इस बात की परख है कि आप डेटा स्ट्रक्चर सोच समझकर चुनते हैं या आदतन dictionary उठा लेते हैं। इंटरव्यूअर सुनना चाहता है कि आप access pattern को स्ट्रक्चर से जोड़ते हैं, जानते हैं कि hash map की परफॉर्मेंस एक average है, गारंटी नहीं, और पहचान लेते हैं कि कब ordering, range queries या सीमित worst case latency की वजह से tree सही चुनाव बन जाता है।
अपना जवाब कैसे स्ट्रक्चर करें
- बताइए कि हर स्ट्रक्चर सच में किन operations में अच्छा है।
- चुनाव को सवाल में दिए गए access pattern से जोड़िए।
- सिर्फ average नहीं, worst case व्यवहार का भी जिक्र कीजिए।
- एक उदाहरण दीजिए जब आपने एक से दूसरे पर स्विच किया।
उदाहरण जवाब
मेरा डिफॉल्ट hash map ही है, क्योंकि ज्यादातर वक्त मैं id से point lookup कर रहा होता हूं और constant average time को हराना मुश्किल है। लेकिन जैसे ही जरूरत में ordering आती है, मैं बदल देता हूं। दो timestamps के बीच के सारे events दो, या इसके बाद वाली key बताओ, यह सब range query है, और hash map बिना सब कुछ स्कैन किए यह कर ही नहीं सकता। वहां tree चाहिए, या व्यवहार में binary search वाला कोई sorted स्ट्रक्चर। मैं tail के बारे में भी सोचता हूं। hash lookups औसतन constant होती हैं, लेकिन खराब hash function या rehash से spike आ सकता है, और latency budget के अंदर मुझे इसकी परवाह होती है। एक leaderboard फीचर में हमने user से score की dictionary से शुरुआत की थी और फिर हर read पर पूरी चीज sort करनी पड़ती थी। जैसे ही हम Redis के sorted set पर गए, reads logarithmic हो गईं और peak पर endpoint गिरना बंद हो गया। वही डेटा, अलग access pattern, अलग स्ट्रक्चर।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- जब बहुत सारी keys टकराती हैं तो hash map का क्या होता है?
- आप least recently used cache कैसे बनाएंगे?
- trie इन दोनों से बेहतर कब बैठता है?
सॉफ्टवेयर इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें