← 질문 목록
#213깊이 0

해시 충돌이 생기면 어떤 방법으로 푸는가?

자료구조 · 알고리즘기초

체이닝과 오픈 어드레싱으로 해결한다. 충돌이 발생한 데이터를 연결 리스트나 빈 공간으로 밀어내는 방식이다.

기준체이닝오픈 어드레싱
저장 방식리스트로 연결빈 슬롯으로 이동
공간 효율추가 메모리 필요기존 배열로 해결
삭제 연산리스트에서 제거삭제 마커 필요

체이닝은 버킷으로 리스트를 구현하여 데이터가 계속 늘어나도 수용 가능하다. 다만 리스트가 길어지면 탐색 시간이 O(1)에서 O(n)으로 늘어난다.

오픈 어드레싱은 빈 칸을 찾을 때까지 계속 탐색한다. 데이터가 꽉 찰수록 충돌이 잦아져 성능이 급격히 떨어진다. 이를 막기 위해 로드 팩터를 관리하고 리사이징을 수행한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

해시 충돌이 생기면 어떤 방법으로 푸는가?