Sobes.tech
Junior — Middle

Slice колдонуп массивдин акырында элемент кошуу операциясынын убакытттык татаалдыгы кандай?

sobes.tech AI

AIден жооп

Go'да, элементти соңга кошуу операциясы (append) амортизирленген убакыттык татаалдыгы O(1).

Түшүндүрүү:

  • Эгер слайстын сыйымдуулугу (capacity) жетиштүү болсо, элементти кошуу жөн гана кийинки бош индекске жазуу менен болот — бул операция убакыт боюнча туруктуу.

  • Эгер сыйымдуулук жетишсиз болсо, жаңы, чоңураак массив бөлүнөт, эски элементтер көчүрүлөт жана жаңы элемент кошулат — бул операция O(n), анда n — учурдагы слайс өлчөмү.

Бирок, мындай кайра бөлүштүрүүлөр ар бир кошууда эмес, гана мезгил-мезгили менен болот, ошондуктан кошуунун орточо (амортизирленген) татаалдыгы O(1) бойдон калат.