Sobes.tech
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.