Sobes.tech
Junior — Middle

Ako sa hodnotí časová zložitosť operácie vyhľadávania prvku podľa hodnoty v sekvencii typu slice?

sobes.tech AI

Odpoveď od AI

Časová zložitosť vyhľadávania prvku podľa hodnoty v reze (slice) v jazyku Go je O(n), kde n je počet prvkov v reze.

To je spôsobené tým, že reze je zoradená sekvencia prvkov bez indexovanej štruktúry pre rýchle vyhľadávanie. Aby ste našli prvok, musíte prejsť reze sekvenčne, porovnávajúc každý prvok s hľadanou hodnotou.

Príklad vyhľadávania prvku v reze:

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

Ak je potrebné rýchlejšie vyhľadávanie, je vhodné použiť dátové štruktúry s indexovaným prístupom, napríklad mapu (map).