Sobes.tech
Junior — Middle

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

sobes.tech AI

AIден жооп

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

Түшүндүрүү:

  • Эгер массивде бош орун болсо, элемент кошуу убакытында жасалат.
  • Эгер орун жок болсо, массив жаңы, чоңураак эс тутум блокун бөлөт (адатта эки эсе чоң), эски элементтерди көчүрөт жана жаңы элементти кошот.

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

Go тилинде slices менен мисал:

var arr []int
arr = append(arr, 10) // элемент кошуу

append автоматтык түрдө slices-ти кеңейтет керек болсо.