Junior — Middle
Kako odrediti vreme potrebno za umetanje elementa na kraj seka (slice) u programskom jeziku?
sobes.tech АИ
Одговор од АИ
U jeziku Go, rez (slice) je struktura koja sadrži pokazivač na niz, dužinu i kapacitet.
Umetanje elementa na kraj niza obično se vrši operacijom append:
slice = append(slice, newElement)
Vreme umetanja zavisi od toga da li trenutni kapacitet niza zadovoljava novi element:
- Ako kapacitet zadovoljava, append jednostavno upisuje element u sledeći slobodni slot — operacija O(1).
- Ako kapacitet ne zadovoljava, dodeljuje se novi niz sa povećanim kapacitetom, stari elementi se kopiraju, i dodaje se novi — operacija O(n), gde je n trenutna dužina niza.
Tako, amortizovano vreme umetanja na kraj niza je O(1), iako neke operacije mogu biti skuplje zbog redistribucije memorije.