|
|
해쉬(Hash)의 개요
|
|
- 폴딩법 : 키 값을 2진수로 변환, 2~3
등분하여 ADD/XOR 함. K
= 7632 = 000111012 => ADD : 1110, XOR
: 1100 - 기수변환법 : 다른
진법으로 계산함. 예, H_Size = 10000 일 때, key
= 100105 => 115 + 112 + 5 =
161177 => 1177 -
자릿수분석법 : 키 값 중 같은 숫자가 많은 자리는 제거한다.
025452184,
02543678, 025458171 => 2184, 3678, 8171 ■ 충돌
해소 (Collision Resolution) -
체인법 : 같은 주소로 해쉬되는 데이터의 연결리스트 유지
- 개방주소법 : 충돌 발생하면
다음 빈방을 찾아 넣음, 배열 사용
■ 개방주소법의 주소 산출 공식 -
Hi(X) = (Hash(X) + F(i)) mod Table_Size, X = 키 값
- 선형검색법 (Linear Probing)
: F(i) = i - 이차검색법 (Quadratic
Probing) : F(i) = i2 -
이중해슁법 (Double Hashing) : F(i) = i x H'(X)
|