Junior — Middle
Как се оценява времевата сложност на операцията за търсене на елемент по стойност в последователност от тип slice?
sobes.tech AI
Отговор от AI
Времевата сложност при търсене на елемент по стойност в срез (slice) в Go е O(n), където n е броят на елементите в среза.
Това се дължи на факта, че срезът е подредена последователност от елементи без индексна структура за бързо търсене. За да намерите елемент, трябва да преминете през среза последователно, сравнявайки всеки елемент с търсената стойност.
Пример за търсене на елемент в срез:
func contains(slice []int, val int) bool {
for _, item := range slice {
if item == val {
return true
}
}
return false
}
Ако е необходим по-бърз търсене, трябва да използвате структури от данни с индексран достъп, например карта (map).