Junior — Middle
Hogyan értékeljük egy slice típusú sorozatban az érték szerinti elem keresésének időbeli összetettségét?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a szelet (slice) érték szerinti elemkeresésének időkomplexitása O(n), ahol n a szelet elemeinek száma.
Ez azért van, mert a szelet egy rendezett elemekből álló sorozat, gyors kereséshez nem indexelt struktúrával. Egy elem megtalálásához végig kell menni a szeletet, összehasonlítva minden elemet a keresett értékkel.
Példa elem keresésére egy szeletben:
func contains(slice []int, val int) bool {
for _, item := range slice {
if item == val {
return true
}
}
return false
}
Gyorsabb kereséshez indexelt hozzáférést biztosító adatszerkezeteket, például térképet (map) érdemes használni.