Junior — Middle
Explicați principiul adresării deschise în implementarea containerelor asociative de tip map.
sobes.tech AI
Răspuns de la AI
Adresarea deschisă este o metodă de rezolvare a coliziunilor în tabelele hash, precum map. La adăugarea unui cuplu cheie-valoare, dacă hash-ul calculat indică o celulă ocupată, căutarea unei celule libere se face în interiorul array-ului urmând o anumită secvență (de exemplu, sondare liniară sau pătratică).
În loc să folosească liste înlănțuite pentru coliziuni (lanțuri), adresarea deschisă stochează toate elementele într-un singur array, verificând secvențial pozițiile adiacente până găsește una goală.
Exemplu de sondare liniară:
// hash - funcție de hash
// table - array pentru stocarea elementelor
// i - numărul de încercări
index := (hash(cheie) + i) % len(table)
Această metodă economisește memorie pentru pointeri, dar necesită controlul încărcării tabelului pentru a evita degradarea performanței.