Junior — Middle
Koja je vremenska složenost operacije dodavanja elementa u dinamički niz?
sobes.tech АИ
Одговор од АИ
Dodavanje elementa u dinamički niz obično ima amortizovanu vremensku složenost O(1).
Objašnjenje:
- Ako u nizu postoji slobodno mesto, element se dodaje u konstantnom vremenu.
- Ako nema mesta, niz alocira novi veći blok memorije (obično duplo veći), kopira stare elemente i dodaje novi.
Iako operacija proširenja traje O(n), ona se ne dešava često, pa je prosečna (amortizovana) složenost dodavanja i dalje O(1).
Primer u Go-u sa rezovima:
var arr []int
arr = append(arr, 10) // dodavanje elementa
append će automatski proširiti rezim ako je potrebno.