Junior — Middle
Hogyan határozzák meg a Map adatstruktúrába kulcs szerint történő elem hozzáadásának végrehajtási idejét?
sobes.tech MI
Válasz az MI-től
Go-ban az adatszerkezet map hash-táblaként van megvalósítva. Egy elem hozzáadásának időtartama kulcs szerint átlagosan O(1) — állandó idő, mivel a kulcs hash-függvényének kiszámítása és a megfelelő kosárba való beszúrás történik.
Azonban a legrosszabb esetben, ha sok ütközés fordul elő (több kulcs ugyanazzal a hash-sel rendelkezik), az idő O(n)-re csökkenhet, ahol n a kosárban lévő elemek száma. De a jó hash-eloszlás és a dinamikus bővítés miatt ilyen esetek ritkák.
Elem hozzáadása a map-hez például:
m := make(map[string]int)
m["key"] = 42 // a hozzáadás művelete amortizált O(1) időben történik