Junior — Middle
How to find out the time costs when adding an element to the end of an array?
sobes.tech AI
Answer from AI
Adding an element to the end of an array typically has an amortized time complexity of O(1). This is because, if there is enough allocated memory in the array, the element is simply added to the next free slot.
However, if the array is full, a resize operation occurs — a new larger array is allocated, and all elements are copied to it, which takes O(n) time, where n is the current size of the array.
In Swift, for example, arrays are implemented with dynamic memory allocation, and adding via the append method is usually fast, but can sometimes trigger a reallocation:
var array = [1, 2, 3]
array.append(4) // Fast operation if there is space
Thus, to estimate the time costs, one can rely on the amortized estimate of O(1), but also consider the rare copy operations.