Sobes.tech
Back to questions
Junior — Middle
96

Как оценивается временная сложность операции поиска элемента по значению в последовательности типа slice?

Answer from AI

sobes.tech 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.