← 질문 목록
#206깊이 0
해시 충돌을 해결하는 두 방식의 차이는 무엇인가?
자료구조 · 알고리즘기초
체이닝은 연결 리스트로 충돌 데이터를 쌓고, 개방 주소법은 빈 공간을 찾아 저장한다.
| 기준 | 체이닝 | 개방 주소법 |
|---|---|---|
| 저장 위치 | 버킷 외부 | 버킷 내부 |
| 메모리 사용 | 추가 할당 필요 | 정해진 크기 내 사용 |
| 성능 저하 | 리스트 탐색 시간 증가 | 클러스터링 발생 |
체이닝은 데이터가 계속 늘어나도 저장 가능하며 구현이 간단하다. 하지만 데이터가 한 버킷에 쏠리면 탐색 시간이 선형적으로 증가한다.
개방 주소법은 메모리 효율이 좋으나 데이터가 찰수록 빈 칸을 찾는 비용이 크다. 특히 특정 영역에 데이터가 뭉치는 클러스터링 현상이 발생하면 성능이 급격히 떨어진다.
데이터의 양을 예측할 수 없다면 체이닝을, 메모리 공간이 한정적이라면 개방 주소법을 선택한다.
추천 꼬리질문
관련 질문
- 해시 테이블의 평균 O(1)이 무너지는 경우는?자료구조 · 알고리즘해시 테이블의 시간 복잡도가 무너지는 이유는 해시 충돌이 빈번하게 발생하기 때문이므로, 충돌 해결 방식에 대한 이해가 선행되어야 한다.
- 해시 충돌 발생 시 해결 방법은 무엇인가?자료구조 · 알고리즘두 질문 모두 해시 충돌 해결 방법이라는 동일한 주제를 다루고 있다.
- 해시 충돌이 생기면 어떤 방법으로 푸는가?자료구조 · 알고리즘두 질문 모두 해시 충돌 시 사용하는 해결 방법이라는 동일한 개념을 다루고 있다.
- 해시 충돌이 발생했을 때의 해결책은 무엇인가?자료구조 · 알고리즘두 질문 모두 해시 충돌 해결책이라는 동일한 개념을 다루고 있다.
- HashMap은 해시 충돌을 어떤 방식으로 처리하는가?언어 · 런타임