Sobes.tech
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