Junior — Middle
Jaka jest złożoność czasowa operacji wyszukiwania elementu na liście zaimplementowanej za pomocą slice'a?
sobes.tech AI
Odpowiedź od AI
W Go, slice to dynamiczna tablica, która przechowuje elementy w sekwencyjnym obszarze pamięci. Szukanie elementu po wartości w slice wymaga przeszukania elementów, ponieważ slice nie jest indeksowany po wartości.
W związku z tym, złożoność czasowa operacji wyszukiwania elementu w slice to O(n), gdzie n to liczba elementów w slice.
Przykład wyszukiwania elementu:
func contains(slice []int, val int) bool {
for _, item := range slice {
if item == val {
return true
}
}
return false
}
W najgorszym przypadku, trzeba sprawdzić wszystkie elementy.