Sobes.tech
Junior — Middle

Каква е времевата сложност на операцията по търсене на елемент в списък, реализиран чрез slice?

sobes.tech AI

Отговор от AI

В Go, слайсът е динамичен масив, който съхранява елементи в последователна област от паметта. Търсенето на елемент по стойност в слайс изисква обхождане на елементите, тъй като слайсът не е индексиран по стойност.

Следователно, времевата сложност на операцията по търсене на елемент в слайс е O(n), където n е броят на елементите в слайса.

Пример за търсене на елемент:

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

В най-лошия случай ще трябва да проверите всички елементи.