Junior — Middle
Можете ли објаснити принцип рада хеширања у реализацији карте (Map)?
sobes.tech АИ
Одговор од АИ
U Go-u, mapa (mapa) je implementirana kao tabela heširanja, gde se ključevi pretvaraju u heš vrednosti pomoću funkcije heširanja. Princip rada heširanja u mapi je sledeći:
- Za dati ključ, računa se heš kod — numerička vrednost koja zavisi od sadržaja ključa.
- Heš kod se koristi za određivanje indeksa u nizu bačvi (kesa), gde se čuva vrednost.
- Ako u kesi postoji više elemenata (kolizija), vrši se pretraga putem lančanog niza ili drugog mehanizma za rešavanje kolizija.
Ovo omogućava brzo pronalaženje, dodavanje i brisanje elemenata po ključu sa amortizovanom složenošću od oko O(1).
Primer korišćenja mape u Go-u:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
U ovom primeru, string "apple" se hešira, i vrednost 5 se čuva u odgovarajućoj kesi.