배열과 오브젝트 분석

Taewoong Moon·2024년 1월 4일
0

2. Analyzing Performance of Arrays and Objects

Objects

  • Unordered, key value pairs
  • Unordered(순서)가 없어서 key value를 지울때, 추가할 때, 변경할 때 performance는 O(1)이다.
  • 키의 값을 찾거나 키 자체를 찾을때 (Object.keys(), Object.values())는 O(N)이다.
  • Object.hasOwnProperty()는 O(1)인데 왜?
    • Object.hasOwnProperty() 메서드는 맞는 키값을 찾을때까지 array처럼 모든 키들을 iterate하는것처럼 보인다. 하지만, Object는 모두 hashing 되어있어서 순회하지않고 direct key를 찾을 수 있다!

Arrays

  • Ordered Lists, 순서가 필요없는 data structure라면 성능을 위해서 object를 사용하는게 좋다
  • accessing O(1), searching O(N), insertion(it depends… 어디에 추가하냐에 따라), removal(it depends… 어디 element를 삭제하냐에 따라)
  • push: O(1), pop: O(1), shift & unshift: O(N), foreach, concat, slice, splice … : O(N)
  • sort : O(NlogN)

Time complexity에서 가장 중요한것: input이 늘어남에따라 어떻게 복잡도가 변하는지를 생각해야 한다.

profile
모든 코드에 의미를 담겠습니다.

0개의 댓글