Hash Table

2021. 7. 10. 21:25자료구조 (Data Structure)

해시 테이블

  • Hash Table: Key와 Value를 1:1로 매핑시켜, Key를 통해 Value값을 도출한다.
  • Hash Table은 매우 빠른 평균, 삽입, 삭제, 탐색 연산을 제공한다.

해시 함수

  • key ---f(key)---> index: f(x)는 해시함수이다. 
  • 해시함수의 역할: key값을 작은 범위의 값인hash로 변경한다.
  • hash는 저장소에 value와 매핑되어 저장된다.

해시함수의 종류와 특징

  • 충돌(collision): 서로 다른 여러 key값이 동일한 hash값으로 결과가 되는 경우

      - 충돌을 막기 (최소화 하기) 위한 hash function이 필요하다. 

  • open addressing

      - 추가 메모리 공간의 사용 없이, 기존 메모리 공간을 이용한다. 

      - 충돌이 발생했을 때, 빈 공간에 값을 저장한다.

      - linear probing(빈 공간을 찾아 한 칸씩 이동), quadratic probing(제곱으로 뛰면서 빈 칸을 찾음) 등이 대표적이다.

  • chaining 

       - 해당 hash에 대한 linked list를 만들어, 노드를 추가하여 value를 삽입

 

  • resizing

       - 저장공간이 일정 수준 채워지면(75%), 테이블의 크기를 2배로 증가시킨다.

     

 

 

'자료구조 (Data Structure)' 카테고리의 다른 글

B - Tree & B + Tree  (0) 2021.07.12
Red - Black Tree  (0) 2021.07.11
배열(Array) VS. 리스트(List)  (0) 2021.07.08
HEAP(힙)  (0) 2021.06.29
TREE (트리)  (0) 2021.06.29