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