이중 해싱 예제

모든 요소는 h 1 {displaystyle h_{1}} 및 h 2 {디스플레이 스타일 h_{2}}를 사용하여 이중 해시를 사용하여 T {디스플레이 스타일 T}에 배치됩니다. 키 k {displaystyle k} 주어진 , (i + 1) {displaystyle (i+1)} -st 해시 위치에 의해 계산 됩니다. n {displaystyle n}에 저장된 요소의 수를 하자 {디스플레이 스타일 T} 다음 T {displaystyle T} 의 하중 계수는 α = n | T | {디스플레이 스타일 알파 ={frac {n}{| T|}} . 또한 보조 해시 함수를 0으로 평가할 수 있습니다. 예를 들어 다음 함수를 사용 하 여 k =5를 선택 하는 경우: 다른 모든 형식의 열린 주소 지정과 마찬가지로 해시 테이블 최대 용량에 가까워지면 이중 해시가 선형이 됩니다. 이에 대한 유일한 해결책은 다른 모든 열린 주소 지정 스키마와 마찬가지로 더 큰 크기로 다시 해시하는 것입니다. 선형 프로빙과 이차 프로빙은 가까운 위치에 액세스하여 데이터 캐시를 활용할 수 있습니다. 이중 해싱은 평균적으로 더 큰 간격을 가지며 이러한 이점을 달성할 수 없습니다. 이차 프로빙 및 이중 해싱은 선형 프로빙에 의해 형성되는 클러스터의 크기를 줄이는 방법을 찾으려고 시도합니다. 이중 해시는 해시 테이블에서 해시 충돌을 해결하는 데 사용되는 컴퓨터 프로그래밍 기법으로, 동일한 해시 키를 생성하기 위해 두 개의 서로 다른 값을 검색하는 경우입니다. 개방형 해시 테이블에서 널리 사용되는 충돌 해결 기술입니다. 이중 해싱은 많은 인기 라이브러리에서 구현됩니다.

이중 해싱은 열린 주소 지정 해시 테이블에서 충돌 해결 기술입니다. 이중 해시는 충돌이 발생할 때 키에 두 번째 해시 함수를 적용하는 개념을 사용합니다. 선형 프로빙을 통해 우리는 항상 열린 지점을 찾을 수 있다는 것을 알고 있습니다 (긴 검색일 수 있지만 우리는 그것을 발견 할 것입니다). 그러나 테이블 크기를 선택하지 않는 한 이차 프로빙의 경우는 그렇지 않습니다. 예를 들어 선형 프로빙과 마찬가지로 하나의 해시 값을 시작점으로 사용한 다음 원하는 값이 위치하거나 빈 위치에 도달하거나 전체 테이블에 도달할 때까지 간격을 반복적으로 진행합니다. 검색된 중; 그러나 이 간격은 두 번째 독립 해시 함수(따라서 이중 해시 이름)를 사용하여 결정됩니다. 선형 프로빙 및 이차 프로빙과 달리 간격은 데이터에 따라 달라지므로 동일한 위치에 매핑되는 값도 서로 다른 버킷 시퀀스를 갖습니다. 이렇게 하면 반복되는 충돌과 클러스터링의 영향을 최소화할 수 있습니다.

이중 해싱은 선형 및 이차 프로빙과 유사한 아이디어에서 작동합니다. 큰 테이블과 해시를 사용합니다. 충돌이 발생할 때마다 테이블의 다른 지점을 선택하여 값을 넣습니다. 여기서 차이점은 다음 개구부를 선택하는 대신 두 번째 해시 함수를 사용하여 다음 지점의 위치를 결정한다는 것입니다. 예를 들어, 주어진 해시 함수 H1 및 H2 및 키. 다음을 수행합니다: 이중 해싱은 균일한 열린 주소 해싱을 근사화합니다. 즉, 두 개의 범용 해시 함수 h 1 {displaystyle h_{1}}와 h 2 {displaystyle h_{2}}를 임의로 균일하게 독립적으로 선택하여 이중 해싱 테이블 T {displaystyle T}를 작성합니다. 이중 해시는 다음과 같은 (해시1(키) + i * 해시2(key)) % TABLE_SIZE 여기 해시1() 및 해시2(해시2)를 사용하여 수행할 수 있으며, TABLE_SIZE는 해시 테이블의 크기입니다.

(충돌이 발생했을 때 i를 늘려 반복합니다) 이렇게 하면 보조 해시 함수가 항상 0이 아닙니다. T {디스플레이 스타일 T}에 고정 하중 계수 α가 있습니다 : 1 > α > 0 {디스플레이 스타일 알파 :1>알파 >0} . 브래드포드와 Katehakis[1]는 T {displaystyle T}에서 실패한 검색에 대한 예상 프로브 수를 보여 주었으며, 여전히 처음에 선택한 해시 함수를 사용하며, 입력 분포에 관계없이 1- α {displaystyle {frac {1}{1{1-alpha}}입니다.

Ce contenu a été publié dans Non classé. Vous pouvez le mettre en favoris avec ce permalien.

Les commentaires sont fermés.