hashcollision

hash table을 설명해 주세요

예상 시간
6
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

Collision은 무엇이고 왜 불가피한가요?

부가 설명

const map = new Map();
map.set("name", "Joon");
map.get("name"); // "Joon"

JavaScript의 Map은 언어 수준에서 key-value collection을 제공하지만, 내부적으로 hash table과 비슷한 아이디어를 떠올릴 수 있습니다.

hash table의 핵심은 “key를 비교해서 하나씩 찾지 않고, 계산으로 위치를 찾는다”는 점입니다. 이때 hash function이 값을 고르게 분산해야 collision이 줄어듭니다.

평균 O(1)은 collision이 잘 분산되고 resizing이 적절히 이뤄진다는 전제가 있을 때의 기대 성능입니다.

한 줄 정리

hash table은 key를 hash로 위치에 매핑해 평균적으로 빠른 key-value 접근을 제공하는 자료구조입니다.