Sobes.tech
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).