Sobes.tech
Junior — Middle

Care este complexitatea temporală a operației de adăugare a unui element la sfârșitul unui array de tip ArrayList?

sobes.tech AI

Răspuns de la AI

Complexitatea temporală de adăugare a unui element la sfârșitul unui array de tip ArrayList în medie este O(1) — timp amortizat constant.

Acest lucru se întâmplă deoarece ArrayList stochează elementele într-un array de dimensiune fixă. Când adăugăm un element și există spațiu liber în array, elementul este pur și simplu plasat în următoarea celulă.

Totuși, dacă array-ul este plin, are loc o operație de extindere — se creează un nou array de dimensiune mai mare și toate elementele sunt copiate în el. Această operație durează O(n) timp, unde n este numărul de elemente.

Exemplu:

ArrayList<Integer> list = new ArrayList<>();
list.add(1); // O(1)
list.add(2); // O(1)
// Când se atinge capacitatea array-ului, are loc o extindere — O(n)

Prin urmare, complexitatea medie a adăugării este — O(1), dar în cel mai rău caz — O(n).