Sobes.tech
Junior — Middle

Mekkora az időbeli komplexitása egy elem keresésének egy listában, amit slice segítségével valósítottak meg?

sobes.tech MI

Válasz az MI-től

Go-ban a slice egy dinamikus tömb, amely elemeket tárol egymás után a memóriában. Egy elem érték szerinti keresése a slice-ben végig kell nézni az összes elemet, mivel a slice nem indexelhető érték szerint.

Ezért az elem keresésének időbeli komplexitása a slice-ben O(n), ahol n a slice elemeinek száma.

Elem keresésének példája:

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

Itt a legrosszabb esetben minden elemet ellenőrizni kell.