Sobes.tech
Junior — Middle

Kako odrediti vremenske troškove operacije umetanja novog elementa u niz?

sobes.tech АИ

Одговор од АИ

Ubacivanje novog elementa u niz zavisi od tipa niza i načina ubacivanja:

  • Za statički niz (fiksne veličine): ubacivanje na kraj je O(1), ako postoji slobodno mesto. Ubacivanje u sredinu ili na početak je O(n), jer je potrebno pomeriti elemente.
  • Za dinamički niz (npr. ArrayList u Javi ili NSMutableArray u iOS):
    • Ubacivanje na kraj je obično amortizovano O(1), ali kada se niz napuni, dolazi do preraspodele memorije i kopiranja — O(n).
    • Ubacivanje u sredinu ili na početak je O(n), zbog pomeranja elemenata.

Dakle, vremenska složenost zavisi od pozicije ubacivanja i implementacije niza. Obično je ubacivanje na kraj dinamičkog niza brzo amortizovano, dok ostala ubacivanja zahtevaju pomeranje elemenata i imaju linearnu složenost.