Sobes.tech
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).