Hash Table

Woogle·2023년 2월 13일
0

C++ 공부

목록 보기
11/28

📄 Hash Table

  • Key, value로 데이터를 저장하는 구조
  • Hash란 해시 함수에 의해 얻어지는 값

✏️ Hash function (Hash algorithm)

  • 데이터를 최종 사용자가 원문을 추정하기 힘든 더 작고, 뒤섞인 조각으로 나누는 것
  • 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터(해시 값)로 매핑하는 함수
  • MD5, SHA, Whirlpool, RIPEMD, CRC32 등

🚀 해시 함수의 특성

  • 해시 함수는 단방향 함수로 작용
  • 해시 함수에서는 눈사태 효과가 매우 잘 나타남
  • 해시 함수는 매우 빨리 연산할 수 있음
  • 해시 함수의 결과값은 충돌(Hash Collision)이 일어나지 않음
    ※ 중복은 허용하나, 충돌 해결 의무 있음
  • 해시 함수는 결정론적

✏️ Hash Collision

  • 서로 다른 문자열을 해시한 결과가 동일한 경우
  • 해시 함수를 H()라고 했을 때 서로 다른 문자열 s1과 s2에 대해서 H(s1) = H(s2)인 경우
  • 해시 테이블을 구현할 때 해시 충돌이 일어나게 되면 Chaining 혹은 Open addressing을 통해서 해결해야한다.

이미지 출처

profile
노력하는 게임 개발자

0개의 댓글