Sobes.tech
Junior — Middle

Kokia yra laiko sudėtingumo lygis operacijai pridėti elementą į masyvo pabaigą naudojant slice?

sobes.tech AI

Atsakymas iš AI

Go kalboje, pridėjimo operacija prie galo slice (append) turi amortizuotą laiko sudėtingumą O(1).

Paaiškinimas:

  • Jei slice turi pakankamai talpos (capacity), elementą paprasčiausiai įrašome į kitą laisvą indeksą — tai operacija vyksta pastoviu laiku.

  • Jei talpa nėra pakankama, priskiriamas naujas, didesnis masyvas, kopijuojami seni elementai ir pridedamas naujas — ši operacija užtrunka O(n), kur n yra dabartinis slice dydis.

Tačiau, kadangi tokie perplanavimai nevyksta kiekvieno pridėjimo metu, o tik periodiškai, vidutinė (amortizuota) pridėjimo sudėtingumas išlieka O(1).