Sobes.tech
Junior — Middle

Mekkora az időbeli komplexitása annak az műveletnek, amikor egy elemet hozzáadunk egy dinamikus tömbhöz?

sobes.tech MI

Válasz az MI-től

Dinamikus tömbhöz elem hozzáadása általában O(1) amortizált időkomplexitással jár.

Magyarázat:

  • Ha van szabad hely a tömbben, az elem hozzáadása konstans időt vesz igénybe.
  • Ha nincs hely, a tömb egy nagyobb memória blokkot foglal (általában kétszeres méretűt), átmásolja a régi elemeket és hozzáadja az újat.

Bár a bővítési művelet O(n) időt vesz igénybe, nem fordul elő gyakran, így az átlagos (amortizált) komplexitás O(1) marad.

Go nyelven szeletekkel például:

var arr []int
arr = append(arr, 10) // elem hozzáadása

Az append automatikusan bővíti a szeletet szükség esetén.