해시 테이블
해시를 이용해서 key: value 쌍을 저장하고 O(1) 에 value를 찾는 자료구조이다.
- 해시 함수를 통해 immutable 한 key에서 해시를 얻는다
- 크기를 고정한(n) 배열을 생성하고
- 해시를 인덱스(0~n-1)로 변환하여(보통 modulo 연산. 해시 % n)
- 배열의 인덱스에 키 밸류를 저장한다
- 리스트, 그래프 형태로(Separate Channing)로 저장하거나
- 인접한 다른 인덱스에 삽입(Open Addressing)한다.
(해시) 충돌이 발생하면 최악의 경우 탐색에 O(n)이 걸린다.