Junior — Middle
Kokia yra dinaminio masyvo elemento pridėjimo operacijos laiko sudėtingumas?
sobes.tech AI
Atsakymas iš AI
Dinaminio masyvo elemento pridėjimas paprastai turi amortizuotą laiką sudėtingumą O(1).
Paaiškinimas:
- Jei masyve yra laisvos vietos, elementas pridedamas per pastovų laiką.
- Jei vietos nėra, masyvas paskiria naują didesnį atminties bloką (dažniausiai dvigubai didesnį), kopijuoja senus elementus ir prideda naują.
Nors plėtros operacija užima O(n) laiką, ji vyksta retai, todėl vidutinė (amortizuota) pridėjimo sudėtingumas lieka O(1).
Pavyzdys Go kalboje su slices:
var arr []int
arr = append(arr, 10) // elementų pridėjimas
append automatiškai išplės slices, jei reikės.