해시 테이블 (Hash table)

hashtable thumbnail.png
해시 테이블(해시 맵이라고도 불림)은 Key와 Value로 연관 데이터를 매핑 시켜주는 데이터 구조이다. 해시 함수를 통해 Key를 고유한 index로 변환하여 이 index를 이용하여 bucket이나 slot이라 불리는 배열등에 저장 한다.
Pasted image 20230921155310.png|400

hashing은 공간-시간 trade off의 가장 일반적인 예이다. 요소가 있는지 확인하기 위해 매번 배열을 검색하는 대신 배열을 한 번 탐색 후 모든 요소를 해시 테이블로 만들 수 있다.
hashing 후에는 검색에 O(n)이 걸리던 시간 복잡도를 O(1)로 만들 수 있다.

hashing의 문제점은 해시 충돌인데, 이에 관한 충돌 해결 방법은 다음과 같이 있다.

시간 복잡도

동작 Big-O 비고
접근 N/A 해시 코드가 무엇인지 모르면 알 수 없다.
검색 O(1)*
삽입 O(1)*
삭제 O(1)*

필수 문제

추천 문제


참조
Array cheatsheet for coding interviews | Tech Interview Handbook