Junior — Middle
Slice колдонуп массивдин акырында элемент кошуу операциясынын убакытттык татаалдыгы кандай?
sobes.tech AI
AIден жооп
Go'да, элементти соңга кошуу операциясы (append) амортизирленген убакыттык татаалдыгы O(1).
Түшүндүрүү:
-
Эгер слайстын сыйымдуулугу (
capacity) жетиштүү болсо, элементти кошуу жөн гана кийинки бош индекске жазуу менен болот — бул операция убакыт боюнча туруктуу. -
Эгер сыйымдуулук жетишсиз болсо, жаңы, чоңураак массив бөлүнөт, эски элементтер көчүрүлөт жана жаңы элемент кошулат — бул операция O(n), анда n — учурдагы слайс өлчөмү.
Бирок, мындай кайра бөлүштүрүүлөр ар бир кошууда эмес, гана мезгил-мезгили менен болот, ошондуктан кошуунун орточо (амортизирленген) татаалдыгы O(1) бойдон калат.