Sobes.tech
Junior — Middle

Jak se hodnotí časová složitost operace hledání prvku podle hodnoty v sekvenci typu slice?

sobes.tech AI

Odpověď od AI

Časová složitost hledání prvku podle hodnoty v řez (slice) v jazyce Go je O(n), kde n je počet prvků v řezu.

To je způsobeno tím, že řez je seřazená posloupnost prvků bez indexované struktury pro rychlé hledání. Abychom našli prvek, musíme projít řez sekvenčně, porovnávající každý prvek s hledanou hodnotou.

Příklad hledání prvku v řezu:

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

Pokud je potřeba rychlejší hledání, je vhodné použít datové struktury s indexovaným přístupem, například mapu.