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.
ArrayListu Javi iliNSMutableArrayu 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.