본문 바로가기
FrontEnd/JavaScript

[ JavaScript ] Set이 왜 더 빠를까?(feat. 해시테이블, 시간복잡도)

by ウリ김영은 2023. 10. 29.

Set 이 왜 더 빠른가? Set 은 해시테이블 자료구조를 갖고 있다고 한다.

 

2023.10.29 - [Computer Science] - [ 자료구조 ] 해시테이블 Hash Table

해시테이블 자료 구조란?

  • Key,Value System 사용하여 데이터를 저장하는 자료구조이다.
  • 키(Key), 해시함수(Hash function), 해시(hash), 값(value), 저장소(bucket)로 이루어져 있다.

장점 단점
- 검색 속도가 빠르다
- 삽입, 삭제 작업이 O(1)이다.
- 순서가 있는 배열에 어울리지 않는다.
- 공간 복잡도가 높다.
- 해시 함수의 의존도가 높다.
- 해시 충돌이 발생할 수 있다.

데이터 관리 메서드 & 시간 복잡도

  Set Array
값이 있는지 확인하기 set.has() => 시간 복잡도 : O(1) array.includes() => 시간 복잡도: O(n)
값을 추가하기 set.add() => 시간 복잡도: O(1) array.push() => 시간 복잡도: O(1)
특정 값을 삭제하기 set.delete() => 시간 복잡도: O(1) array.filter() => 시간 복잡도 : O(n)

Set을 사용하여 데이터 관리하면 좋은 경우

  • 중복된 데이터가 없는 경우
  • 값이 있는지 확인, 특정 값을 삭제하는 행위가 많은 경우

참조

https://velog.io/@jiwonyyy/javascipt-Set-vs-Array-%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84-%EB%B9%84%EA%B5%90-%ED%95%B4%EC%8B%9C%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%B4%EB%9E%80

https://devowen.com/209