알고리즘 (JS) / / 2023. 11. 21. 15:43

Big-O로 보는 자바스크립트의 Object와 Array

왜 알아야 할까

우리가 너무 익숙하게 사용하는 객체와 배열의 메서드를 사용할 때마다

어떤 복잡도를 갖는지를 알아야 계산이 가능하기 때문이다.

 

for문 안에서 만약 배열을 slice 하거나 index를 찾기위해 indexOf 와 같은 메서드를 사용하는 경우

순식간에 복잡도는 O(n^2) 가 되어버리기 때문에 ,, 항상 하나를 사용하더라도 주의해서 사용해야 한다.

 

Object 

키와 값으로 이루어진 자바스크립트의 객체

const person = {
	firstName: 'yy';
    lastName: 'k';
}

 

insert : O(1)

remove : O(1)

access : O(1)

search : O(n) -> 최악의 경우에는 모든 요소를 다 돌아야 찾을 수 있기 때문!

Object.keys() : O(n)

Object.values() : O(n)

Object.entries() : O(n)

 

Array

인덱스를 통해서 정렬된 값들의 컬렉션

const odd = [1, 3, 5, 7, 9];

 

- 가장 끝에 값을 생성하거나 삭제할 때 : O(1)

-가장 앞에 값을 생성하거나 삭제할 때 : O(n)

  가장 앞에 값을 생성하고 그 뒤에 있는 배열의 인덱스를 다 앞으로 당기거나 뒤로 미루어야 하기 때문에!

access : O(1)

search : O(n)

push / pop : O(1)

shift / unshift / concat / slice / splice : O(n)

forEach / map / filter / reduce : O(n)

 

'알고리즘 (JS)' 카테고리의 다른 글

Sorting Algorithms  (1) 2023.11.22
Search Algorithms  (1) 2023.11.21
Math Algorithms  (1) 2023.11.21
Big-O Notation  (1) 2023.11.21
알고리즘 개념  (2) 2023.11.21
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유