Sobes.tech
Junior — Middle

Milline on aja keerukus operatsioonil, mille käigus otsitakse elementi listist, mis on implementeeritud slice abil?

sobes.tech AI

Vastus AI-lt

Go keeles on slice dünaamiline massiiv, mis salvestab elemendid järjestikuses mälualal. Elemendi otsimine väärtuse järgi slice'is nõuab elementide läbikäimist, kuna slice ei ole väärtuse järgi indekseeritud.

Seega, elemendi otsimise operatsiooni ajakompleksus slice'is on O(n), kus n on slice'i elementide arv.

Näide elemendi otsimisest:

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

Kõige halvemal juhul tuleb kontrollida kõiki elemente.