해시 테이블에 관련된 개념

참조 :
https://www.cnblogs.com/songdechiu/p/6954038.html
https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/ 알고리즘 - 심볼 테이블 .md

1. 첫 번째 단계는 이상적 다른 키는 상이한 인덱스 값으로 변환 할 수있는 키 배열 인덱스를 변환하는 해시 함수를 사용하지만, 동일한 인덱스 값 키 해시 복수 실제로 존재 .

따라서, 두 번째 단계는 충돌이 충돌 과정이다. 두 개의 충돌하는 충돌 처리 방법이있다 : 개별 프로브 체인 (압축 방식)과 리니어 (선형 프로브 법)

해시 테이블은 시간과 공간의 절충을하는 알고리즘의 고전적인 예이다.

더 메모리 제한이없는 경우, 알고리즘은 할 수있는 배열로 직접 키 (아마도 슈퍼) 지수는 모든 검색 작업의 완료에 하나의 메모리 액세스가 필요합니다. 그러나이 때문에 많은 시간 때 메모리의 키 필요도 일반적으로 이상적인 상황이 아니다.

시간 제한이없는 경우, 알고리즘은 무질서한 배열 순서를 찾는 데 사용 등 약간의 메모리를 필요로 할 수있다.

해시 테이블은 적절한 공간과 시간이 두 극단 사이의 균형을 찾을 수를 사용합니다.

좋은 해시 방법은 세 가지 조건을 충족해야합니다 :

일관성 - 상응하는 키는 동일한 해시 값을 생성해야

효율성 - 계산이 간단하다

균일 성 - 모든 균등 해시 키

가설

가정 : 해시 함수 알고리즘을 결합하는데 사용될 수있는 모든 균일 분산과 독립적으로 0과 M-1 사이이다.

이 가정은 이상적인 모델을 달성 할 수없는 사실이지만, 해시 함수 알고리즘을지도 이념이다.

해시 테이블 지퍼 법에 따라 셋째,

1. 서론
해시 기능 키 배열 인덱스로, 두 번째 단계는 충돌 처리를 위해 필요하다.

가장 간단한 방법의 하나는 M의 링크 된리스트에 배열 좌표의 각 요소의 크기, 연결리스트의 각 노드는 상기 어레이의 쌍에있어서의 주목 위치의 해시 값으로 저장된다.

이 방법은 파스너 방식 (분리 체인)라고한다. 갈등의 요소는 동일한 목록에 배치되기 때문에.
생각이 방법은 다음과 같습니다 효율적인 검색을 보장하기 위해 가능한 한 짧게있는 충분히 큰 M 목록을 만드는 선택합니다.

먼저 해시 값에 따라 적절한 목록을 확인하고 적절한 키를 찾을 수있는 목록을 통과 : 주문을 찾습니다.

넷째, 해시 테이블에 기초하여 상기 선형 검출 방법

도 1을 참조하면, 도입
하는 또 다른 방법은 해시 테이블 키 M 어레이 크기 M> N. 의해 N에 저장된 이 방법은 공석의 해결 충돌 충돌의 배열에 의존합니다.

충돌이 알고리즘 검사 위치 (인덱스에 1을 더한)가 발생한 경우.

프로빙 이러한 선형은 세 가지 결과가 있습니다 :

키 위치와 키 같은 히트하는 찾을 수 있습니다.

미스는, 키가 비어 있습니다.
찾기 위해 계속 키와를 찾는 키의 위치는 동일하지 않습니다.


그리고 Faha 사이 성능 표 프로빙 직선 지퍼 등의 방법은 또한 비 N / M에 의존한다.

그러나 여기되지 동일한 의미는 N / M의 공간의 비율이 해시 테이블 동적 1/2 1/8 사이에 사용을 위해 배열 방법의 크기를 조정하는데 사용되는 알고리즘에 점유한다.

동적으로 모든 재 해시 키에 배열 크기의 필요성을 조정할 때 그리고 지퍼 법.

연결 코드 구현 세부 사항을 참조하십시오.

게시 39 개 원래 기사 · 원 찬양 6 ·은 10000 +를 볼

추천

출처blog.csdn.net/poppyl917/article/details/89408208