
해시 테이블은 (key, value) 쌍으로 데이터를 저장하는 자료구조이다.
key를 해시 함수로 변환해서
→ 배열 인덱스에 직접 접근해서 값을 빠르게 찾는 구조!
💡 "key로 빠르게 value를 찾는 사전(dictionary) 같은 구조"
배열에서 인덱스로 값을 바로 불러오듯, 해시 테이블에서는 key를 이용해 값을 빠르게 조회할 수 있다.
배열에서는 인덱스가 숫자였지만, 해시테이블은 key가 “문자”나 “객체”일 수 있다!
"apple" → hash("apple") = 3table[3] = value"apple" → hash → index 3 → table[3] = "fruit"
d = {}
d["apple"] = "fruit"
print(d["apple"]) # fruit
| 연산 | 평균 시간복잡도 | 최악 시간복잡도 (충돌 시) |
|---|---|---|
| 삽입 | O(1) | O(N) |
| 탐색 | O(1) | O(N) |
| 삭제 | O(1) | O(N) |
일반적으로 O(1) 에 매우 빠르게 동작하지만,
충돌이 많아지면 최악의 경우 O(N)까지도 갈 수 있다.
hash("apple") → 189823019 → 189823019 % 1000 = 19