해시 테이블 적재율 계산기
테이블 크기와 원소 수로 적재율 α를 구하고 체이닝·선형 탐사·이중 해싱의 성공·실패 평균 탐색 횟수를 계산합니다. α가 0.7을 넘을 때 선형 탐사가 무너지는 지점을 표로 확인할 수 있습니다.
버킷(슬롯) 개수입니다.
적재율 α
0.75
768 ÷ 1,024 = 75% 참
| 적재율 α | 선형 실패 | 이중 실패 | 선형 성공 | 체이닝 성공 |
|---|---|---|---|---|
| 0.1 | 1.12 | 1.11 | 1.06 | 1.05 |
| 0.25 | 1.39 | 1.33 | 1.17 | 1.13 |
| 0.5 | 2.5 | 2 | 1.5 | 1.25 |
| 0.7 | 6.06 | 3.33 | 2.17 | 1.35 |
| 0.75 | 8.5 | 4 | 2.5 | 1.38 |
| 0.8 | 13 | 5 | 3 | 1.4 |
| 0.9 | 50.5 | 10 | 5.5 | 1.45 |
| 0.95 | 200.5 | 20 | 10.5 | 1.48 |
| 0.99 | 5,000 | 100 | 50.5 | 1.5 |
사용 방법
- 1테이블 크기(버킷 개수)를 넣습니다.
- 2담은 원소 수를 넣으면 적재율 α = 원소 수 ÷ 테이블 크기가 나옵니다.
- 3체이닝·선형 탐사·이중 해싱의 성공·실패 평균 탐색 횟수를 견줍니다. 삽입 비용은 실패 탐색과 같습니다.
- 4표에서 α를 올렸을 때 각 방식이 어떻게 나빠지는지 보고 리해싱 임계값을 정합니다.
자주 묻는 질문
적재율 α = 담은 원소 수 ÷ 테이블 크기입니다. 1024칸에 768개를 담았다면 α = 0.75입니다. 개방주소법(선형 탐사·이중 해싱)은 원소를 테이블 안에 두므로 α가 1을 넘을 수 없고, 체이닝은 칸마다 리스트를 달아 두므로 1을 넘어도 됩니다.
체이닝은 성공 1+α/2·실패 α, 선형 탐사는 성공 ½(1+1/(1−α))·실패 ½(1+1/(1−α)²), 이중 해싱은 성공 (1/α)·ln(1/(1−α))·실패 1/(1−α)입니다. Knuth의 TAOCP 3권 6.4절에 있는 닫힌 식이며, 해시가 고르게 흩뿌린다는 가정에서 나옵니다.
선형 탐사의 실패 탐색 비용이 (1−α)의 제곱에 반비례해서 α가 1에 가까워질 때 폭발하기 때문입니다. α 0.5에서 2.5회, 0.75에서 8.5회지만 0.9에서 50.5회, 0.95에서 200.5회가 됩니다. 자바 HashMap이 0.75, 파이썬 dict가 2/3을 임계로 두는 이유가 이 곡선입니다.
없다는 것을 확인하려면 빈 칸에 닿을 때까지 끝까지 가 봐야 하기 때문입니다. 찾는 것이 있으면 만나는 순간 멈추지만, 없을 때는 탐사 순열을 계속 따라가야 합니다. 삽입 비용도 실패 탐색과 같습니다 — 넣을 자리를 찾는 일이 곧 없다는 것을 확인하는 일이라서입니다.
적재율이 높다면 이중 해싱이 확실히 낫습니다. α 0.9에서 실패 탐색이 이중 해싱 10회, 선형 탐사 50.5회로 다섯 배 벌어집니다. 다만 선형 탐사는 다음 칸을 순서대로 보므로 CPU 캐시에 잘 맞아, α를 0.5 아래로 낮게 유지한다면 실측이 더 빠를 수 있습니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 세 식 모두 해시가 균등하게 흩뿌린다는 가정에서 나온 근사입니다. 특히 이중 해싱 식은 빈 칸 순열이 무작위라는 «균등 해싱»을 가정한 것으로, 실제 이중 해싱은 이보다 조금 나쁩니다.
- 선형 탐사에는 한 번 뭉친 자리가 다음 충돌을 빨아들이는 1차 군집이 있어 실제 측정값이 식보다 나쁜 쪽으로 벌어집니다. 여기 수치는 하한에 가깝습니다.
- 체이닝 수치는 리스트를 따라가며 «비교한 횟수»입니다. 칸 자체를 보는 것을 한 번으로 세는 교재는 여기에 1을 더해 성공 1+α/2 대신 실패를 1+α로 적기도 합니다.
- 삭제가 잦은 개방주소법 테이블에서는 삭제 표식(tombstone)이 쌓여 실질 적재율이 계산값보다 높아집니다. 그때는 원소 수가 줄어도 탐색이 느려집니다.
- α가 낮아도 해시 함수 자체가 치우치면 성능이 무너집니다. 적재율은 필요조건이지 충분조건이 아닙니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.