[자료구조, C] 해시 테이블(Hash Table)
·
내가 공부한 것들/자료구조 & 알고리즘
[테이블(Table)의 이해] 이전에 공부했던 이진 탐색 트리와 AVL 트리는 탐색과 관련해서 굉장히 좋은 성능을 보였다. 이 둘은 탐색 키와의 비교 과정을 거치면서 찾는 대상에 가까워지는 방식이다. 그런데 원하는 데이터를 ‘단번에’ 찾아내는 방식이라고는 볼 수 없다. 상황에 따라서는 위의 두 자료구조의 성능은 적합하지 않을 수도 있다. 이런 상황에서 사용할 수 있는 자료구조가 테이블(Table)이다. 이진 탐색 트리와 AVL 트리는 탐색 연산이 $O(log_2n)$만큼의 시간 복잡도를 가진다. 그런데 테이블 자료구조에서 탐색 연산은 $O(1)$의 시간 복잡도를 보인다. 왜 그런지는 테이블의 탐색 원리를 알면 바로 이해가 된다. 위와 같은 ‘표’는 ‘테이블’ 자료구조라고 볼 수 있다. 물론, 모든 표가 ..