Sobes.tech
Junior — Middle

U kojim situacijama dodavanje elementa na kraj ArrayList može imati vremensku složenost O(n)?

sobes.tech АИ

Одговор од АИ

Dodavanje elementa na kraj ArrayList obično ima amortizovanu vremensku složenost O(1), ali u nekim slučajevima može biti O(n). To se dešava kada je unutrašnji niz koji čuva elemente pun i potrebno ga je proširiti.

Prilikom dodavanja novog elementa:

  • Ako ima mesta, element se jednostavno dodaje — O(1).
  • Ako nema mesta, kreira se novi niz veće veličine (obično 1,5-2 puta veći), i svi postojeći elementi se kopiraju u novi niz — ta operacija je O(n).

Dakle, dodavanje elementa može imati vremensku složenost O(n) baš u trenutku proširenja unutrašnjeg niza.