최대 1 분 소요

해시 함수란?

  • 데이터를 키로 변환하는 함수
  • 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑



해싱 함수 종류

제산법(Division)

  • 나머지 연산자(%)를 사용하여 테이블 주소를 계산

제곱법(Mid Square)

  • 레코드 키 값을 제곱한 후, 결괏값의 중간 부분에 있는 몇 비트를 선택하여 해시 테이블의 홈 주소로 사용하는 방식

숫자 분석법(Digit Analysis)

  • 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택해 홈 주소로 사용하는 방식

폴딩법(Folding)

  • 레코드키 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR 한 값을 홈 주소로 사용하는 방식

기수 변환법(Radix Conversion)

  • 레코드키의 진법을 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방식

무작위 방법(Random)

  • 난수를 발생시켜 레코드 키의 홈 주소를 결정하는 방식


복잡도

  • O(1) : 상수형 복잡도
  • 자료 크기와 무관하게 항상 같은 속도로 작동
  • 알고리즘 수행 시간이 입력 데이터 수와 관계없이 일정


고려할 점

  • 계산과정의 단순화
  • 충돌의 최소화
  • 기억장소 낭비의 최소화
  • 오버플로우의 최소화

댓글남기기