Junior — Middle
Jaka jest złożoność czasowa operacji usunięcia elementu z tablicy?
sobes.tech AI
Odpowiedź od AI
Złożoność czasowa usunięcia elementu z tablicy zależy od tego, gdzie znajduje się element i jak jest zaimplementowana tablica.
-
Jeśli trzeba usunąć element według indeksu, w dynamicznej tablicy (np. List w Dart/Flutter), po usunięciu następuje przesunięcie wszystkich kolejnych elementów, aby wypełnić puste miejsce. To prowadzi do złożoności czasowej O(n), gdzie n to liczba elementów po usuniętym.
-
Jeśli usuwamy ostatni element, operacja ta jest wykonywana w O(1), ponieważ nie jest potrzebne przesunięcie.
Przykład w Dart:
List<int> numbers = [1, 2, 3, 4, 5];
numbers.removeAt(2); // usuwa element o indeksie 2 (liczba 3)
// po usunięciu elementy na indeksach 3 i 4 przesuwają się w lewo
W związku z tym, ogólnie rzecz biorąc, usunięcie elementu z tablicy to operacja o złożoności czasowej O(n).