Sobes.tech
Junior — Middle

Jaká je časová složitost operace hledání prvku v seznamu implementovaném pomocí slice?

sobes.tech AI

Odpověď od AI

V jazyce Go je slice dynamický pole, které ukládá prvky v sekvenční oblasti paměti. Vyhledávání prvku podle hodnoty v slice vyžaduje prohledání prvků, protože slice není indexován podle hodnoty.

Tedy časová složitost operace hledání prvku v slice je O(n), kde n je počet prvků v slice.

Příklad hledání prvku:

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

V nejhorším případě je třeba zkontrolovat všechny prvky.