해시 테이블은 키와 해시함수, 그리고 버킷이라는 데이터를 저장하는 장소로 이루어짐.
- 키(key) - 고유한 값, 해싱함수의 인자값
- 해시 함수(hash function) - 키를 입력받은 후 키에 맞는 데이터가 저장 된 위치값을 반환(이 과정을 해싱이라고 함).
- 버킷(bucket) - 해시 함수를 통해 생성된 해시 값을 고유 주소(키)로 사용하며 키에 맞는 값(value)의 한 쌍으로 저장하는 장소.
해시 테이블은 데이터가 키-값의 한 쌍으로 이루어져있기 때문에 삽입, 삭제, 검색 등의 과정에서 모두 O(n)의 시간복잡도를 가짐.
키값이 순차적으로 생성되는 것은 아니므로 순서나 관계가 있는 배열에서 사용하는 것은 적합하지 않으며 해시충돌이 일어날 수 있음.
해시 충돌(hash collision)
해시 충돌이란 다른 키값을 입력했으나 같은 해시값이 반환되는 경우를 말함.
해결방법은 Chaining과 Open Addressing(개방 주소법)의 방법이 있음.
+) 읽어보기
'STUDY > DSA' 카테고리의 다른 글
이분 탐색/이진 탐색(Binary Search) (0) | 2020.06.03 |
---|---|
기수 정렬(Radix sort) / 계수 정렬(Counting sort) (0) | 2020.06.02 |
힙 정렬(Heap sort) (0) | 2020.06.02 |
퀵 정렬(Quick sort) / 병합(합병) 정렬 (Merge sort) (0) | 2020.05.28 |
거품 정렬(Bubble sort) / 선택 정렬(Selection sort) / 삽입 정렬(Insertion sort) (0) | 2020.05.27 |