Junior — Middle
Ako sa určuje časová zložitosť operácie vloženia prvku na koniec poľa?
sobes.tech AI
Odpoveď od AI
Vkladanie prvku na koniec poľa v iOS závisí od typu poľa:
-
Pre pevne veľké polia (napríklad C polia) nie je možné vložiť na koniec bez vytvorenia nového poľa.
-
Pre NSMutableArray alebo Swift polia, ktoré dynamicky menia veľkosť, sa vkladanie na koniec zvyčajne vykonáva v amortizovanom O(1) čase. To znamená, že pridanie je zvyčajne rýchle, ale niekedy, keď pole dosiahne svoju aktuálnu kapacitu, dôjde k prealokácii pamäte a kopírovaniu prvkov, čo trvá viac času.
Príklad v Swift:
var array = [1, 2, 3]
array.append(4) // Zvyčajne O(1), niekedy O(n) pri prealokácii