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.