본문 바로가기
CS 지식

Hash / Hash Table

by chanfficial 2022. 12. 25.

Hash

  • 데이터를 효율적으로 관리하기 위해 임의의 크기를 가진 데이터(key)를 고정된 크기의 데이터(value)로 변화시켜 저장하는 것
  • 키에 대한 Hash 값을 사용하여 값을 저장하고 키-값 쌍의 개수에 따라 동적으로 크기가 증가하는 연괸배열
  • 키에 대한 Hash 값을 구하는 과정을 Hashing 이라고 하며 이때 사용하는 알고리즘을 해시함수 라고 함
  • Hash 값 자체를 index 로 사용하기 때문에 평균 시간복잡도가 O(1)로 매우 빠름

 

해시함수

  • 키에 대한 Hash 값을 만드는 함수
  • 계산이 단순하고 키값에 대해 중복이 없이 해시값을 고르게 만들어 내는 함수가 좋음
  • 충돌이 일어나지 않을수록 좋음
  • 나눗셈법(Division Method)과 곱셈법(Multiplication Method)이 대표적

 


 

Hash Table

  • (Key, Value) 의 형태로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있음
  • 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문에 빠른 검색속도를 제공할 수 있음
  • 각각의 키값에 해시함수를 적용해 배열의 고유한 index를 생성하고 이를 활용해서 값을 저장하거나 검색하는데 여기서 실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 함

 

'CS 지식' 카테고리의 다른 글

정규화(Normalization)  (0) 2023.01.02
B-Tree  (0) 2022.12.25
결합 인덱스(Composite Index)  (0) 2022.12.04
기본 인덱스(Primary index)와 보조 인덱스(Secondary index)  (1) 2022.12.04
인덱스(Index)  (0) 2022.11.28