문제 10 · 더블 해싱
문제 10 [3점]
더블 해싱double hashing에 대해, 장점과 함께 서술하시오.
풀이 및 해설
더블 해싱이란
개방 주소법open addressing의 한 종류로, 충돌collision이 일어났을 때 두 번째 해시 함수로 계산한 간격만큼 건너뛰며 빈 자리를 찾는다.
이다. 여기서
동작
장점
- 군집화(clustering) 억제: 선형 조사linear probing의 1차 군집화(연속된 칸이 뭉치는 현상)와, 2차 조사quadratic probing의 2차 군집화(같은 초기 위치의 키들이 같은 탐사 순열을 공유하는 현상)를 모두 피한다.
- 탐사 간격
가 키마다 달라지므로, 같은 값을 갖는 키라도 서로 다른 탐사 경로를 따른다. 그 결과 실제 성능이 이상적인 균일 해싱(uniform hashing)에 가장 가깝다. - 적재율load factor이 높아도 상대적으로 탐사 횟수가 적어 성능 저하가 완만하다.