【글로벌 Best】 JavaScript 알고리즘 & 자료구조 마스터클래스
해당 포스팅은 Udemy의 Javascript 알고리즘 & 자료구조 마스터 클래스 인강을 정리한 것입니다.
oreder
가 필요없을 때
access / insertion / removal
을 빠르게 하고 싶을 때
Insertion
: O(1)
Removal
: O(1)
Searching
: O(N)
Access
: O(1)
Object.keys
: O(N)
: Object 프로퍼티 키를 배열로 반환
Object.values
: O(N)
: Object 프로퍼티 값을 배열로 반환
Object.entries
: O(N)
: Object의 프로퍼티 [key, value] 쌍의 배열을 반환
hasOwnProperty
: O(1)
: Object가 특정 프로퍼티를 가지고 있는지를 나타내는 불리언 값을 리턴
: 해당 프로퍼티만을 조회하므로 O(1)
Object 정리
- Object는
index
가 없어 search하는 데 오래 걸린다.- index가 필요 없는 작업, 즉
ordering
할 필요가 없다면 object를 이용하자!
oreder
가 필요할 때access / insertion / removal
을 빠르게 하고 싶을 때Insertion
- It depends position
: 배열의 맨 끝에 삽입 - O(1)
: 맨 앞에 삽입 - 엘레먼트의 인덱스를 다시 배정해야 하므로 O(N)
Removal
- It depends position
: 배열의 맨 끝 엘레먼트를 삭제 - O(1)
: 배열의 맨 앞 엘레먼트를 삭제 - 엘레먼트의 인덱스를 다시 배정해야 하므로 O(N)
Searching
- O(N)
: 데이터가 찾고자 하는 데이터인지 하나씩 판별 - O(N)
Access
- O(1)
: index를 통해 해당 데이터로 바로 접근 가능하기에 O(1)
push
: O(1)pop
: O(1)shift
: O(N)unshift
: O(N)concat
: O(N)slice
: O(N)splice
: O(N)sort
: O(N * log N)forEach/map/filter/reduce/etc.
: O(N)