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.