ν΄μλ?
ν΄μ ν¨μλ₯Ό μ¬μ©ν΄μ λ³νν κ°μ μΈλ±μ€λ‘ μΌμ ν€μ κ°μ μ μ₯ν΄μ λΉ λ₯Έ λ°μ΄ν° νμμ μ 곡νλ μλ£κ΅¬μ‘°
ν΄μμ νΉμ§
- λ¨λ°©ν₯ λμ (ν€λ₯Ό ν΅ν΄ κ°μ μ°Ύμ μ μμ§λ§ κ°μ ν΅ν΄ ν€λ₯Ό μ°ΎκΈ° λΆκ°λ₯)
- ν€ μμ²΄κ° μΈλ±μ€μ΄λ―λ‘ κ°μ μ°ΎκΈ° μν νμ λΆνμ
- κ°μ μΈλ±μ€λ‘ νμ©νκΈ° μν΄ μ μ ν λ³νκ³Όμ νμ
ν΄μμ λμλ°©μ
ν΄μ ν μ΄λΈ(hash table) : ν€μ λμν κ°μ΄ μ μ₯λμ΄ μλ 곡κ°
λ²ν·(bucket) : ν΄μ ν μ΄λΈμ κ° λ°μ΄ν°
ν΄μμ νΉμ±μ νμ©νλ λΆμΌ
λ¨λ°©ν₯μΌλ‘λ§ κ²μμ΄ κ°λ₯ν λμ λΉ λ₯΄κ² μνλ κ° κ²μ (λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ²μνλ κ²½μ° / 보μμ΄ νμν κ²½μ°μ νμ©)
- λΉλ°λ²νΈ κ΄λ¦¬ : λΉλ°λ²νΈλ₯Ό κ·Έλλ‘ λ ΈμΆν΄ μ μ₯νλ κ²μ μννλ―λ‘ ν΄μ±ν λΉλ°λ²νΈ μ μ₯
- λ°μ΄ν°λ² μ΄μ€ μΈλ±μ± : λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ²μ
- λΈλ‘μ²΄μΈ : κ° λΈλ‘μ μ΄μ λΈλ‘μ ν΄μκ°μ ν¬ν¨νλ©° μ΄λ₯Ό ν΅ν΄ λ°μ΄ν° λ¬΄κ²°μ± νμΈ
ν΄μν¨μλ₯Ό ꡬνν λ κ³ λ €ν λ΄μ©
- ν΄μ ν¨μκ° λ³νν κ°μ μΈλ±μ€λ‘ νμ©ν΄μΌνλ―λ‘ ν΄μ ν μ΄λΈμ ν¬κΈ°λ₯Ό λμΌλ©΄ μλλ€.
- ν΄μ ν¨μκ° λ³νν κ°μ μΆ©λμ μ΅λν μ κ² λ°μν΄μΌ νλ€.
(μΆ©λ : μλ‘ λ€λ₯Έ λ ν€μ λν΄ ν΄μ± ν¨μλ₯Ό μ μ©ν κ²°κ³Όκ° λμΌν κ²μ μλ―Έ)
μμ£Ό μ¬μ©νλ ν΄μν¨μ
1) λλμ λ² (division method)
β(π₯) = π₯ πππ π
- x = ν€ / m = μμ
- ν€λ₯Ό μμλ‘ λλ λλ¨Έμ§λ₯Ό μΈλ±μ€λ‘ μ¬μ© (μΆ©λμ μ€μ΄κΈ° μν΄ μμ μ¬μ©)
- λλ¨Έμ§λ₯Ό μ·¨νλ μ°μ°μ λͺ¨λλ¬ μ°μ°μ΄λΌκ³ νλ©° μ°μ°μλ‘ % μ¬μ©
- mμ λͺ¨λλ¬ μ°μ°νμ λ λμ¬ μ μλ κ°μ 0~(m-1)μ΄λ―λ‘ ν΄μ ν μ΄λΈμ ν¬κΈ°λ m (ν° μμλ₯Ό μ°ΎκΈ° μ΄λ €μ΄ λ¬Έμ )
2) κ³±μ λ² (multiplication method)
β(π₯) = (((π₯ β π΄) πππ 1) β π)
- m = μ΅λ λ²ν·μ κ°μ / A = ν©κΈλΉ (μνμ μΌλ‘ μμμ κΈΈμ΄λ₯Ό λλμμ λ μ 체:κΈ΄ λΆλΆ = κΈ΄ λΆλΆ:짧μ λΆλΆμΈ λΉμ¨)
- κ³±μ
λ²μ κ³μ°νλ λ°©μ
- ν€μ ν©κΈλΉ κ³±νκΈ°
- μμμ ꡬν κ°μ λͺ¨λλ¬ 1 μ·¨νκΈ° (μ μ λΆλΆμ λ²λ¦¬κ³ μμ λΆλΆ μ·¨νκΈ°)
- μμμ ꡬν κ°μ κ°μ§κ³ μ€μ ν΄μ ν μ΄λΈμ 맀ν
λ¬Έμμ΄ ν΄μ±
βππ β(π ) = (π [0] + π [1] β π + π [2] β π2 β¦ π [πβ1] β πn-1) πππ π- λ¬Έμμ΄μ λ¬Έμλ₯Ό μ«μλ‘ λ³ννκ³ μ΄ μ«μλ€μ λ€νμμ κ°μΌλ‘ λ³νν΄μ ν΄μ±
- ν΄μ ν¨μλ₯Ό μ μ©ν κ°μ΄ ν΄μ ν
μ΄λΈ ν¬κΈ°μ λΉν΄ λ무 ν΄ κ²½μ° μμ μμ
νμ
→ λ§μ μ μ λΆ ν λ€μ λͺ¨λλ¬ μ°μ°μ νλ λμ μ€κ°μ€κ° λͺ¨λλ¬ μ°μ°μ ν΄ λνκ°μ λͺ¨λλ¬ μ°μ°
μΆ©λ μ²λ¦¬
μΆ©λ(collision) : μλ‘ λ€λ₯Έ ν€μ λν΄ ν΄μ ν¨μμ κ²°κ³Όκ°μ΄ κ°μ κ² (νλμ λ²ν·μ 2κ°μ κ°μ λ£dj μΆ©λ μ²λ¦¬κ° νμ)
1) 체μ΄λμΌλ‘ μ²λ¦¬νκΈ°
체μ΄λ : μΆ©λμ΄ λ°μνλ©΄ ν΄λΉ λ²ν·μ λ§ν¬λ리μ€νΈλ‘ κ°μ ν΄μκ°μ κ°μ§λ λ°μ΄ν° μ°κ²°
- ν΄μ ν μ΄λΈ κ³΅κ° νμ©μ±μ΄ λ¨μ΄μ§λ€. (μΆ©λμ΄ λ§μμ§λ©΄ λ§ν¬λ리μ€νΈμ κΈΈμ΄κ° κΈΈμ΄μ Έ ν΄μ ν μ΄λΈ κ³΅κ° μ¬μ©λ↓)
- κ²μ μ±λ₯μ΄ λ¨μ΄μ§λ€. (μΆ©λμ΄ λ§μΌλ©΄ λ§ν¬λ리μ€νΈ μ체μ νκ³λ‘ κ²μ μ±λ₯ μ ν)
2) κ°λ°© μ£Όμλ²μΌλ‘ μ²λ¦¬νκΈ°
κ°λ°© μ£Όμλ²(open addressing) : λΉ λ²ν·μ μ°Ύμ μΆ©λκ°μ μ½μ → ν΄μ ν μ΄λΈμ μ΅λν νμ©νλ―λ‘ ν¨μ¨μ λ©λͺ¨λ¦¬ μ¬μ©
- μ ν νμ¬ λ°©μ (linear probing)
- μΆ©λμ΄ λ°μνλ©΄ λ€λ₯Έ λΉ λ²ν·μ μ°Ύμ λκΉμ§ μΌμ ν κ°κ²©μΌλ‘ μ΄λ
- ν΄μ μΆ©λμ΄ λ°μν κ°λΌλ¦¬ λͺ¨μ΄λ μμμ΄ μ겨 ν΄λ¬μ€ν° νμ± (μ΄λ¬ν κ΅°μ§μ΄ μκΈ°λ©΄ ν΄μκ°μ΄ κ²ΉμΉ νλ₯ μ¦κ°)
- μ΄μ€ ν΄μ± λ°©μ
- ν΄μ ν¨μλ₯Ό 2κ° μ¬μ©
- λ λ²μ§Έ ν΄μν¨μλ 첫 λ²μ§Έ ν΄μν¨μλ‘ μΆ©λμ΄ λ°μνλ©΄ ν΄λΉ μμΉ κΈ°μ€ μ΄λ»κ² μμΉλ₯Ό μ ν μ§ κ²°μ νλ μν
- μ ν νμ¬μ λΉμ·νκ² λνλ λ°©μμ΄μ§λ§ μ£Όμ΄μ§λ ν€λ§λ€ μ ννλ μμΉλ₯Ό λ€λ₯΄κ² ν΄μ ν΄λ¬μ€ν° νμ± κ°μ
ν΄μ λ¬Έμ μ ν΅μ¬μ ν€μ κ°μ 맀ννλ κ³Όμ !!
β» μ°Έκ³ μλ£ β»
'κ³΅λΆ π > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ³ λ¦¬μ¦] μλ£κ΅¬μ‘° (3) ν (0) | 2024.07.02 |
---|---|
[μκ³ λ¦¬μ¦] μλ£κ΅¬μ‘° (2) μ€ν (0) | 2024.06.25 |
[μκ³ λ¦¬μ¦] μλ£κ΅¬μ‘° (1) λ°°μ΄κ³Ό 리μ€νΈ (0) | 2024.06.21 |
[μκ³ λ¦¬μ¦] μκ° λ³΅μ‘λ (0) | 2024.06.19 |
[μκ³ λ¦¬μ¦] μ€λΉ μ¬ν (0) | 2024.06.17 |