의 우리의 함수로 방정식 X 모드 5 = Y를 사용하자. 그림 10.3.1: 비닝과 계수를 해시 함수로 비교하는 데 도움이 되는 표는 다음과 같습니다. 다음 세션에서는 HashTable 클래스가 작동하는 것을 보여 주며, 이 에 대해 설명합니다. 먼저 해시 테이블을 만들고 정수 키와 문자열 데이터 값을 사용하여 일부 항목을 저장합니다. 하위 문자열 검색과 같은 일부 응용 프로그램에서는 지정된 n자 문자열 t의 모든 k 자 하위 문자열에 대해 해시 함수 h를 계산해야 합니다. 여기서 k는 고정 정수이고 n은 k보다 큽합니다. 이러한 모든 서브스트링 s를 별도로 추출하고 h(들)를 계산하는 간단한 솔루션에는 k·n에 비례하는 여러 작업이 필요합니다. 그러나 h를 적절히 선택하면 해시를 롤링하는 기술을 사용하여 k + n에 비례하는 노력으로 모든 해시를 계산할 수 있습니다. 해시 함수에는 여러 가지 클래스가 있습니다. 다음은 가장 일반적으로 사용되는 몇 가지 입니다: 대부분의 해시 함수 유형의 경우 함수의 선택은 입력 데이터의 특성 및 의도된 응용 프로그램의 확률 분포에 크게 좌우됩니다. 문서 저장소 또는 게놈 데이터베이스와 같은 큰 문자열 컬렉션에서 동일하거나 유사한 늘을 찾는 데 동일한 기술을 사용할 수 있습니다. 이 경우 입력 문자열은 여러 개의 작은 조각으로 나뉘며 해시 함수는 위와 같이 잠재적으로 동일한 조각을 감지하는 데 사용됩니다. 목록 2에서 두 개의 목록을 사용하여 Map 추상 데이터 형식을 구현하는 HashTable 클래스를 만듭니다.

슬롯이라고 하는 하나의 목록에는 키 항목이 있고 데이터라는 병렬 목록이 데이터 값을 보유합니다. 키를 조회하면 데이터 목록의 해당 위치에 연결된 데이터 값이 유지됩니다. 우리는 앞서 제시 한 아이디어를 사용하여 해시 테이블로 키 목록을 처리합니다. 해시 테이블의 초기 크기는 11로 선택되었습니다. 임의적이지만 충돌 해결 알고리즘이 가능한 한 효율적일 수 있도록 크기가 소수여야 합니다. 그러나 출력은 고정된 길이입니다. 즉, 해시 함수가 생성할 수 있는 출력의 수는 매우 많지만 유한한 수입니다. 고정 길이는 고정된 수의 가능성을 의미합니다. 해시 함수는 지정된 키와 유사하지만 동일하지 않은 테이블 레코드를 찾는 데 사용할 수도 있습니다. 또는 비슷한 키가 있는 대용량 파일의 레코드 쌍입니다. 이를 위해 m이 작은 정수(예: 1 또는 2)인 대부분의 m에 의해 다른 해시 값에 유사한 키를 매핑하는 해시 함수가 필요합니다.

이러한 해시 함수를 사용하여 모든 레코드 번호의 테이블 T를 빌드하면 유사한 레코드가 동일한 버킷또는 가까운 버킷에서 끝납니다. 그런 다음 각 버킷 T[i]의 레코드만 확인하면 -m과 m 사이의 버킷 T[i+k]에 있는 버킷에 대한 레코드만 확인하면 됩니다. 입력이 27이라고 가정해 보겠습니다. 이렇게 하면 출력이 2가 됩니다. 이제 해시 함수 X mod 5 = Y를 사용하고 있으며 개인 출력이 2임을 전 세계에 발표한다고 가정해 보십시오. 누구든지 귀하의 입력을 추측 할 수 있습니까? 해시 함수가 단순히 이름의 문자 ASCII 코드의 합계(소문자로 모두 간주)가 계산된 모드인 다음과 같은 간단한 예제를 고려합니다. 문자열을 저장하기 위한 인덱스를 계산하려면 다음을 명시하는 해시 함수를 사용합니다.