Sobes.tech
Junior — Middle

Hogyan határozható meg az elem beszúrásának időbeli összetettsége a tömb végén?

sobes.tech MI

Válasz az MI-től

Az iOS-ban egy elem beszúrása a tömb végére attól függ, hogy milyen típusú a tömb:

  • Fix méretű tömbök esetén (például C-tömbök), a végére nem lehet beszúrni anélkül, hogy új tömböt ne hozzunk létre.

  • Az NSMutableArray vagy Swift tömbök esetén, amelyek dinamikusan változtatják a méretüket, a végére történő beszúrás általában amortizált O(1) időt vesz igénybe. Ez azt jelenti, hogy általában gyors a hozzáadás, de néha, amikor a tömb eléri a jelenlegi kapacitását, memória újraelosztás és elemek másolása történik, ami több időt vesz igénybe.

Swift példával:

var array = [1, 2, 3]
array.append(4) // Általában O(1), néha O(n) újraelosztáskor