Cum se evaluează complexitatea temporală a operației de eliminare a unui element dintr-un array?
sobes.tech AI
Răspuns de la AI
Complexitatea temporară a eliminării unui element dintr-un array depinde de tipul array-ului și de metoda de eliminare:
-
Într-un array standard (de exemplu,
Arrayîn Swift), eliminarea unui element după index necesită deplasarea tuturor elementelor următoare spre stânga pentru a umple "gaura". Aceasta duce la o complexitate de O(n), unde n este numărul de elemente după cel eliminat. -
Dacă se elimină ultimul element, operația se realizează de obicei în O(1), deoarece nu este nevoie de deplasare.
-
În cazul array-urilor dinamice (de exemplu,
ArrayListîn Java sauNSMutableArrayîn Objective-C), situația este similară — eliminarea din mijloc necesită deplasarea elementelor.
Exemplu:
var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // elimină elementul de la indexul 2 (numărul 3)
// După eliminare, elementele 4 și 5 se deplasează cu o poziție spre stânga
Prin urmare, în general, eliminarea unui element dintr-un array este o operație cu complexitate temporară de O(n).