ν΄μ ν μ΄λΈ(Hash Table)
ν΄μ ν
μ΄λΈ(Hash Table)
μ ν€(Key)μ κ°(Value)μ μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°λ‘, λΉ λ₯Έ λ°μ΄ν° κ²μ, μ½μ
, μμ λ₯Ό ν μ μμ΅λλ€.
ν΄μ ν μ΄λΈμ μ¬λ¬Όν¨κ³Ό λΉμ·ν κ°λ μΌλ‘, μ¬λ¬Όν¨μ λ²νΈλ 'ν€(key)'μ, μ¬λ¬Όν¨ μμ 물건μ 'κ°(value)'μ ν΄λΉν©λλ€.
ν΄μ ν μ΄λΈμμ 'ν΄μ ν¨μ'λ μ£Όμ΄μ§ ν€λ₯Ό λ°μ κ·Έ ν€μ ν΄λΉνλ μ¬λ¬Όν¨μ 'μ£Όμ'λ₯Ό κ³μ°ν©λλ€. μ΄ μ£Όμλ ν€κ° μ μ₯λλ μμΉλ₯Ό κ°λ¦¬ν€λ©°, λλΆμ ν€λ₯Ό μ¬μ©νμ¬ λ§€μ° λΉ λ₯΄κ² κ°μ μ°Ύμ μ μμ΅λλ€.
νμ΄μ¬μμλ ν΄μ ν μ΄λΈ κ΅¬μ‘°κ° 'λμ λ리(Dictionary)' ννλ‘ κ΅¬νλμ΄ μμ΅λλ€.
ν΄μ ν μ΄λΈμ μλ μ리
-
ν΄μ±(Hashing)
: ν€λ₯Ό ν΄μ ν¨μλ₯Ό ν΅ν΄ ν΄μ μ½λ(Hash Code)λ‘ λ³ννλ κ³Όμ μ λ»ν©λλ€. μ΄ ν΄μ μ½λλ μ μ₯λ λ°μ΄ν°μ μ£Όμλ₯Ό κ²°μ ν©λλ€. -
ν΄μ μΆ©λ(Hash Collision)
: λ κ°μ λ€λ₯Έ ν€κ° κ°μ μ¬λ¬Όν¨ λ²νΈ(μ£Όμ)λ₯Ό κ°λ¦¬ν€λ κ²½μ°κ° λ°μν μ μμ΅λλ€. μΆ©λμ μλ‘ λ€λ₯Έ ν€κ° λμΌν ν΄μ μ½λλ‘ λ³νλλ κ²½μ°λ₯Ό λ»ν©λλ€. -
ν΄μ ν¨μ(Hash Function)
: ν΄μ ν μ΄λΈμ ν΄μ ν¨μλ₯Ό μ¬μ©ν΄ ν€(Key)λ₯Ό ν΄μ μ½λλ‘ λ³νν©λλ€. μ΄ ν΄μ μ½λλ μ μ₯λ κ°μ μΈλ±μ€λ‘ μ¬μ©λ©λλ€. μ’μ ν΄μ ν¨μλ μΆ©λμ μ΅μννκ³ , λ°μ΄ν°λ₯Ό ν΄μ ν μ΄λΈμ κ³ λ₯΄κ² λΆν¬μν΅λλ€.
ν΄μ ν μ΄λΈμ ꡬν
hash_table = list([0 for i in range(10)]) def get_key(data): return hash(data) def hash_function(key): return key % 8 def save_data(data, value): hash_address = hash_function(get_key(data)) hash_table[hash_address] = value def read_data(data): hash_address = hash_function(get_key(data)) return hash_table[hash_address] save_data('Key1', 'Value1') save_data('Key2', 'Value2') print("Key1:", read_data('Key1')) # Value1 print("Key2:", read_data('Key2')) # Value2
ν΄μ ν μ΄λΈμ μ₯μ κ³Ό λ¨μ
μ₯μ :
ν΄μ ν μ΄λΈμ μ£Όμ μ₯μ μ λ€μκ³Ό κ°μ΄ μμ½ν μ μμ΅λλ€:
-
λΉ λ₯Έ λ°μ΄ν° μ κ·Ό λ° κ²μ
: ν΄μ ν μ΄λΈμ νκ· μ μΈ μν©μμ λ°μ΄ν°λ₯Ό μΆκ°, κ²μ, μμ νλ λ° μμ μκ°(O(1))μ΄ μμλ©λλ€. μ΄λ ν€λ₯Ό μ¬μ©νμ¬ μ§μ ν΄λΉ κ°μ μ κ·Όν μ μκΈ° λλ¬Έμ λλ€. -
ν¨μ¨μ μΈ λ©λͺ¨λ¦¬ μ¬μ©*
ν΄μ ν μ΄λΈμ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯νλ©°, νμμ λ°λΌ λμ μΌλ‘ ν¬κΈ°λ₯Ό μ‘°μ ν μ μμ΅λλ€. -
ν€-κ° μ λ°μ΄ν° ꡬ쑰
: ν€-κ° μ κ΅¬μ‘°λ‘ μΈν΄ λ°μ΄ν°λ₯Ό ꡬ쑰ννκ³ κ΄λ¦¬νκΈ° μ½μ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ§κ΄μ μΌλ‘ μ½μ , κ²μ, μμ ν μ μμ΅λλ€.
λ¨μ :
-
μΆ©λ(Collision) λ°μ
: μλ‘ λ€λ₯Έ ν€κ° λμΌν ν΄μ κ°μ κ°μ§ λ λ°μνλ μΆ©λμ ν΄μ ν μ΄λΈμ μ±λ₯μ μ νμν¬ μ μμ΅λλ€. μΆ©λμ΄ λΉλ²νκ² λ°μνλ©΄ ν΄μ ν μ΄λΈμ νκ· μ μΈ μ κ·Ό, κ²μ, μμ μκ°μ΄ μμ μκ°(O(1))μμ μ΅μ μ κ²½μ° μ ν μκ°(O(n))μΌλ‘ μ¦κ°ν μ μμ΅λλ€. -
μμ μ μ§ λΆκ°λ₯
: ν΄μ ν μ΄λΈμ λ°μ΄ν°μ μμλ₯Ό μ μ§νμ§ μμ΅λλ€. μ¦, ν€-κ° μμ΄ μΆκ°λ μμλλ‘ λ°μ΄ν°λ₯Ό κ²μνκ±°λ λ°λ³΅ν μ μμ΅λλ€. μ΄ λλ¬Έμ λ°μ΄ν°μ μμκ° μ€μν κ²½μ°μλ ν΄μ ν μ΄λΈμ΄ μ ν©νμ§ μμ μ μμ΅λλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result