Sobes.tech
Junior — Middle

În ce situații adăugarea unui element la sfârșitul unui ArrayList poate avea o complexitate de timp O(n)?

sobes.tech AI

Răspuns de la AI

Adăugarea unui element la sfârșitul unui ArrayList are, în general, o complexitate temporară amortizată de O(1), dar în unele cazuri poate fi O(n). Acest lucru se întâmplă atunci când array-ul intern care stochează elementele este plin și trebuie extins.

La adăugarea unui nou element:

  • Dacă există spațiu, elementul este pur și simplu adăugat — O(1).
  • Dacă nu există spațiu, se creează un nou array de dimensiuni mai mari (de obicei de 1,5-2 ori mai mare), și toți elementele existente sunt copiate în noul array — această operație este O(n).

Prin urmare, adăugarea unui element poate avea o complexitate temporară de O(n) chiar în momentul extinderii array-ului intern.