Junior — Middle
Magyarázza el a nyílt címezés elvét a map típusú asszociatív tárolók megvalósításában.
sobes.tech MI
Válasz az MI-től
Nyitott címezés egy módszer a kollíziók megoldására hash-táblákban, mint például a map. Amikor egy kulcs-érték párt adunk hozzá, és a számított hash egy foglalt cellára mutat, akkor a szabad cella keresése a tömbön belül történik egy meghatározott szekvenciát követve (például lineáris vagy kvadratikus próbálkozás).
Ahelyett, hogy láncolt listákat használna a kollíziókhoz (láncok), a nyitott címezés minden elemet egyetlen tömbben tárol, és egymás után ellenőrzi a szomszédos pozíciókat, amíg üreset nem talál.
Lineáris próbálkozás példája:
// hash - hash függvény
// table - tömb az elemek tárolására
// i - próbálkozások száma
index := (hash(kulcs) + i) % len(table)
Ez a megközelítés memória takarékos a mutatók számára, de ellenőrizni kell a táblázat terhelését, hogy elkerüljük a teljesítmény romlását.