Sobes.tech
Junior — Middle

Jak ocenia się złożoność czasową operacji wyszukiwania elementu po wartości w sekwencji typu slice?

sobes.tech AI

Odpowiedź od AI

Złożoność czasowa wyszukiwania elementu po wartości w zakresie (slice) w Go to O(n), gdzie n to liczba elementów w zakresie.

Jest to spowodowane tym, że zakres jest uporządkowaną sekwencją elementów bez struktury indeksowanej do szybkiego wyszukiwania. Aby znaleźć element, trzeba przejść przez zakres sekwencyjnie, porównując każdy element z poszukiwaną wartością.

Przykład wyszukiwania elementu w zakresie:

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

Jeśli potrzebne jest szybsze wyszukiwanie, należy użyć struktur danych z dostępem indeksowanym, np. mapy.