Sobes.tech
Junior — Middle

Dinamik massivga element qo'shish operatsiyasining vaqt murakkabligi qanday?

sobes.tech AI

AIdan javob

Dinamik massivga element qo'shish odatda O(1) amortizatsiya vaqt murakkabligiga ega.

Tushuntirish:

  • Agar massivda bo'sh joy bo'lsa, element konstant vaqt ichida qo'shiladi.
  • Agar joy bo'lmasa, massiv yangi, kattaroq xotira blokini ajratadi (odatda ikki baravar ko'paytiradi), eski elementlarni ko'chiradi va yangi elementni qo'shadi.

Garchi kengaytirish operatsiyasi O(n) vaqt oladigan bo'lsa-da, u kamdan-kam hollarda yuzaga keladi, shuning uchun qo'shishning o'rtacha (amortizatsiya qilingan) murakkabligi O(1) qoladi.

Go tilida slices bilan misol:

var arr []int
arr = append(arr, 10) // element qo'shish

append kerak bo'lsa, slice avtomatik ravishda kengayadi.