Sobes.tech
Junior — Middle

Kokia yra laiko sudėtingumas elemento paieškai sąraše, įgyvendintame naudojant slice?

sobes.tech AI

Atsakymas iš AI

Go kalboje, slice yra dinaminis masyvas, kuris saugo elementus nuosekliame atminties plote. Elemento paieška pagal reikšmę slice reikalauja pereiti per elementus, nes slice nėra indeksuojamas pagal reikšmę.

Todėl, elementų paieškos operacijos laiko sudėtingumas slice yra O(n), kur n yra elementų skaičius slice.

Pavyzdys elemento paieškai:

func contains(slice []int, val int) bool {
    for _, item := range slice {
        if item == val {
            return true
        }
    }
    return false
}

Didžiausiu atveju, reikės patikrinti visus elementus.