Junior — Middle
Как се определя времевата сложност на операцията за вмъкване на елемент в края на масив?
sobes.tech AI
Отговор от AI
Добавянето на елемент в края на масив в iOS зависи от типа на масива:
-
За масиви с фиксиран размер (например, C масиви), добавянето в края е невъзможно без създаване на нов масив.
-
За NSMutableArray или Swift масиви, които динамично променят размера си, добавянето в края обикновено се извършва в амортизирано O(1) време. Това означава, че обикновено добавянето е бързо, но понякога, когато масивът достигне текущата си капацитет, се извършва преразпределение на паметта и копиране на елементите, което отнема повече време.
Пример в Swift:
var array = [1, 2, 3]
array.append(4) // Обикновено O(1), понякога O(n) при преразпределение