본문으로 건너뛰기
김신건의 로그

Hash Table: 해시 기반 딕셔너리

· 수정 · 📖 약 1분 · 197자/단어 #algorithm #data-structure #hash #map
Hash Table, 해시 테이블, Hash Map, 해시 맵

정의

Hash Table 은 해시 함수로 키를 배열 인덱스에 매핑하여 평균 O(1) 삽입/탐색/삭제를 제공합니다.

충돌 해결

Chaining

각 버킷에 연결 리스트/트리 저장. 최악 O(N).

Open Addressing

  • Linear probing: (h + i) mod m
  • Quadratic probing: (h + i²) mod m
  • Double hashing: (h1 + i·h2) mod m

Load factor ~0.5-0.7 유지, 넘으면 rehash.

언어별 구현

언어자료형내부
C++unordered_mapchaining
JavaHashMapchaining + tree (수 많으면)
Pythondictopen addressing (compact + insertion-ordered)
Gomapchaining
RustHashMapSipHash (기본), open addressing

함정

  • 최악 O(N): 적대적 입력 대비 랜덤화 해시 (SipHash, aHash)
  • iteration 순서: Python 3.7+ 는 삽입 순서 보장, 다른 언어는 임의

참고

이 개념을 다룬 위키 페이지 (1)

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기