Sobes.tech
Junior — Middle

Da li je vreme pretraživanja elementa po ključu u strukturi podataka Map konstantno u svim slučajevima?

sobes.tech АИ

Одговор од АИ

Vreme pretraživanja elementa po ključu u Go mapi se u proseku smatra konstantnim (O(1)), ali u najgorem slučaju može da se poveća.

To je povezano sa tim što je mapa u Go implementirana na osnovu hash tabele. Sa idealnom raspodelom hash-ova, pretraživanje je veoma brzo, ali u slučaju kolizija (kada različiti ključevi imaju isti hash), vreme pristupa može da se degradira do linearnog.

Ipak, runtime Go-a optimizuje rad sa mapama kako bi minimizirao ove slučajeve, tako da je u praksi vreme pretraživanja blizu konstantnog.

Primer korišćenja mape:

m := make(map[string]int)
m["apple"] = 5
value, ok := m["apple"]
if ok {
    fmt.Println("Vrednost:", value)
}

Ovde, pristup elementu po ključu "apple" je veoma brz.