# How can we insert an item into an array efficiently?


Sometimes we have to insert items to the first indices of the array

The easiest solution can be:

```
  var array = [1,2,3,4,5,6,7,8,9]
  array.insert(0, at: 0)
  print(array)
``` 
this solution is going to work, but is it efficient?

Looking into the Apple Documentation of the [insert function](https://developer.apple.com/documentation/swift/array/insert(_:at:)-3erb3)
you can see the complexity of the insert function is O(n)
which means all elements of the array will be shifted to insert the item to index 0

So the solution is not efficient, so how can we improve it?

One possible solution is using [reverse function](https://developer.apple.com/documentation/swift/array/reverse()) whose complexity is O(1)  so it's very efficient

1. First, reverse the array
2. Then append the item to the array
3. Then reverse the array again
```
  var array = [1,2,3,4,5,6,7,8,9]
  array.reverse()
  array.append(0)
  array.reverse()
  print(array)
``` 
That is it!
