배열은 인덱스 번호를 가지고 있다.
그러므로 어떤 배열의 요소에 접근하는것은 단순히 인덱스번호를 찾는것이므로 시간복잡도는 O(1)이다.
const Array = ['one', 'two', 'three'];
위에서 push를 사용해 요소를 추가한다면 시간복잡도는 어떻게 될까?
const Array = ['one', 'two', 'three', 'four'];
1 2 3 4
각 요소의 인덱스의 번호가 바뀌지 않고 뒤에 추가만 해주면 되기 때문에 시간복잡도는 O(1)이다.
그러나 unshift
를 사용해서 요소를 맨 앞으로 추가하면 어떻게 될까?
const Array = ['four', 'one', 'two', 'three', ];
1 2 3 4
각각의 요소 인덱스 번호가 바뀐다.
즉, 요소 인덱스 번호를 하나하나 다시 지정해줘야 하므로 시간복잡도는 O(n)이 된다.
그러므로 시간복잡도의 측면으로 봤을때 push
,pop
이 shift
,unshift
보다 빠르다.