본문 바로가기

Object & Array

D-caffein 발행일 : 2023-03-11
반응형

1. Object
자바 스크립트에서 오브젝트는 일반적으로 다음과 같은 상황에서 사용됩니다.

  • 정렬이 필요없을때
  • 빠른 접근, 삽입, 삭제를 할 때
Object의 빅오를 살펴보면 아래와 같습니다.

접근 : O(1)
삽입 : O(1)
삭제 : O(1)
검색 : O(n)

정렬은 되어 있지 않지만 다른 모든 것들이 빠르다는것을 빅오 표기법으로 알수 있습니다.
즉 오브젝트는 index가 아니라 key값으로 작업을 처리합니다.

반응형

2. Arrary

자바스크립트에서 배열의 가장 중요한 점은 정렬이 가능하다는 것입니다.
정렬이 필요한 데이터를 다룰때 사용하게 됩니다.

Array의 빅오를 살펴보면 아래와 같습니다.

삽입, 제거 : 배열의 구성에 또는 삽입,제거 할 위치에 영향을 받습니다.
접근 : O(1)
검색 : O(n)

배열의 삽입과 제거는 어느 위치에서 작업을 수행하는지에 영향을 받습니다.

마지막에 삽입과 제거 작업은 O(1)입니다. 배열의 끝 인덱스를 알기때문에 추가하거나 제거만 하면 되기 때문입니다.
반대로 맨처음 즉 인덱스0번째에 삽입과 제거를 하는 작업은 무조건 마지막보다 느립니다. 그 이유는 맨처음의 인덱스가 바뀜으로 그뒤의 요소들까지 배열의 길이만큼 모두 바뀌게 되기 때문입니다.

이처럼 배열의 성능은 push(), pop(), sort()를 제외하고는 대부분 O(n)의 성능을 갖게 됩니다.

push()     O(1)
pop()       O(1)
sort()       O(n * logn)
shift()      O(n)
unshift()  O(n)
concat()  O(n)
slice()     O(n)
splice()   O(n)
map/filter/reduce  O(n)

 

반응형

'Programming > 자료구조' 카테고리의 다른 글

빈도수 패턴(Frequency pattern)  (0) 2023.03.12
빅오 표기법 (Big O notation)  (0) 2023.03.08

댓글