[DS] 해쉬 테이블(Hash Table)이란?

해시테이블이 필요한 이유


일반적인 Key - Value 의 Map 자료구조에서

탐색의 소요시간은 모든 Key 를 순차적으로 순회하기 때문에 O(n) 이다.

Untitled

해시테이블은, Key 를 해싱해 인덱스로 삼기때문에, Key 자체가 인덱스가 되기때문에 랜덤액세스가 가능하다. 따라서 탐색의 시간복잡도가 O(1) 이다.

또한, key 자체가 인덱스가 되기 때문에 2차원 배열을 굳이 만들 필요없이 1차원 배열만 사용하므로 메모리 사용면으로도 효율적이다.

해시 맵의 단점은 다음과 같다.