web/javascript

Objects의 시간복잡도

blackbearwow 2023. 10. 1. 20:30

Objects란 key-value쌍으로 모든것을 저장하는 무질서한 자료구조이다.

let instructor = {
    firstName: "Princeton",
    isInstructor: true,
    favoriteNumbers: [1,2,3,4]
}

시간복잡도(Big O Notation):

함수 입력이 늘어남에 따라 해당 함수의 실행 시간이 얼마나 바뀌는지 설명하는 방법이다. 

 

Objects의 시간복잡도:

●삽입 - O(1)

object가 얼마나 많은 속성을 가지고있는지는 중요하지 않다. '순서가 없다' object는 처음과 끝이 존재하지 않기 때문에 삽입하던 삭제하던 접근하던 아무런 영향이 없다.

instructor.gavoriteGame = "Metroid";

● 제거 - O(1)

delete instructor.gavoriteGame

● 접근 - O(1)

key를 주었을 때, 해당하는 value를 찾는 것.

● 탐색 - O(n)

key로 찾는것은 굉장히 빠르지만, value로 찾으려면 모든 item들을 체크해야하기 때문에 시간복잡도가 O(n)이다.

 

Objects 메소드의 시간복잡도:

● Object.keys - O(n)

모든 key에 한번씩 접근해 key를 배열에 추가해야한다.

● Object.values - O(n)

Object.keys와 같지만, value값을 배열에 추가한다.

● Object.entries - O(n)

Object.keys보다 기술적으로 더 많이 일하지만, 시간복잡도는 같다.

 

 

 

참고: https://medium.com/@diego.zegarra78/big-o-of-objects-e1e92d7358e7

'web > javascript' 카테고리의 다른 글

javascript 동작 원리  (0) 2024.05.03
javascript set(집합)  (2) 2023.10.14
youtube html에 삽입하기(youtube iframe_api)  (0) 2023.08.31
JS Promise.all & Promise.race  (0) 2023.02.21
JS async & await  (0) 2023.02.20