Junior — Middle
Објасните принцип отворене адресације у реализацији асоцијативних контејнера типа map.
sobes.tech АИ
Одговор од АИ
Otvorena adresacija je metoda za rešavanje kolizija u hash tabelama, kao što je map. Prilikom dodavanja para ključ-vrednost, ako izračunati hash ukazuje na zauzetu ćeliju, pretraga slobodne ćelije vrši se unutar niza po određenoj sekvenci (npr. linearno ili kvadratno sondiranje).
Umesto korišćenja povezanih listi za kolizije (lanaca), otvorena adresacija čuva sve elemente unutar jednog niza, redom proveravajući susedne pozicije dok ne pronađe praznu.
Primer linearnog sondiranja:
// hash - funkcija heširanja
// table - niz za čuvanje elemenata
// i - broj pokušaja
index := (hash(ključ) + i) % dužina(table)
Ovaj pristup štedi memoriju na pokazivačima, ali zahteva kontrolu opterećenja tabele kako bi se izbeglo pogoršanje performansi.