ν΄μ(Hash)
μ μ μμμΌλ‘ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄ μμμ κΈΈμ΄ λ°μ΄ν°λ₯Ό κ³ μ λ κΈΈμ΄μ λ°μ΄ν°λ‘ 맀ννλ κ²μ΄λ€.
- ν΄μ ν¨μλ₯Ό μ¬μ©νμ¬ μ μ₯ν λ°μ΄ν°μ μ°κ΄λ κ³ μ ν μ«μλ₯Ό λ§λ λ€ μ΄λ₯Ό μΈλ±μ€λ‘ μ¬μ©νλ€.
- λ΄λΆμ μΌλ‘ λ°°μ΄μ μ΄μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° λλ¬Έμ λΉ λ₯Έ κ²μ μλ(O(1))λ₯Ό κ°λλ€.
1. ν΄μ ν¨μ(Hash Function)
- μ μ₯ν λ°μ΄ν°μ μ°κ΄λ κ³ μ ν μ«μ(Hash Code)λ₯Ό λ§λ λ€.
- μ μ₯λλ κ°λ€μ key κ°μ ν΄μ ν¨μλ₯Ό ν΅ν΄ μμ λ²μμ κ°λ€λ‘ λ°κΎΌλ€.
2. ν΄μ ν μ΄λΈ
ν΄μ ν μ΄λΈμ μμκ° μ μ₯λ μλ¦¬κ° μμμ κ°μ μν΄ κ²°μ λλ μλ£κ΅¬μ‘°λ‘ μμμ μμλ₯Ό ν΄μ ν μ΄λΈμ μ μ₯νλ €λ©΄ ν΄μ ν¨μλ₯Ό ν΅ν΄ ν΄μ κ°μ κ³μ°νκ³ ν΄μ κ°μ λ°λΌ μ μ₯νλ€.
3. μΆ©λ(Collision) νμ ν΄κ²°
μΆ©λμ΄λ ν΄μ ν μ΄λΈ λ΄μ ν μ£Όμλ₯Ό λκ³ λ κ° μ΄μμ μμκ° μ리λ₯Ό λ€ν¬λ κ²μ λ§νλ€.
1) 체μ΄λ(Chaining)
μ°κ²° 리μ€νΈλ‘ λ Έλλ₯Ό κ³μ μΆκ°ν΄λκ°λ λ°©μμ΄λ€.
2) κ°λ°© μ£Όμ(Open Addressing)
ν΄μ ν¨μλ‘ μ»μ μ£Όμκ° μλ λ€λ₯Έ μ£Όμμ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλλ‘ νμ©νλ€.
- μ ν νμ¬: μΆ©λμ΄ μΌμ΄λ λ€μ μ리λ₯Ό κ³μν΄μ νμ.
- μ΄μ°¨μ νμ¬: λ€μ μ리λ₯Ό 보λ λμ μ΄μ°¨ ν¨μ(i^2)μ μν΄ νμ.