Sobes.tech
Junior — Middle

Aká je časová zložitosť operácie vyhľadávania prvku v zozname implementovanom pomocou slice?

sobes.tech AI

Odpoveď od AI

V jazyku Go je slice dynamický poľ, ktorý uchováva prvky v sekvenčnej oblasti pamäte. Vyhľadávanie prvku podľa hodnoty v slice si vyžaduje prechádzanie prvkov, pretože slice nie je indexovaný podľa hodnoty.

Teda časová zložitosť operácie vyhľadávania prvku v slice je O(n), kde n je počet prvkov v slice.

Príklad vyhľadávania prvku:

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

V najhoršom prípade je potrebné skontrolovať všetky prvky.