해쉬 충돌에 대해 질문드리고 싶습니다.
어느정도는 이해 한거 같습니다! 질문 게시글을 작성을 한 이후 스스로 곰곰히 생각을 해보고 분석을 해보았습니다. 1. 해쉬 테이블에서 키를 해쉬 함수에 입력하면 해쉬 값(또는 해쉬 코드)가 반환됨 2. 해쉬 값은 해쉬 테이블의 인덱스로 사용되어 값을 저장하거나 검색 3. 그러나 해쉬 함수의 특성상 서로 다른 키가 동일한 해쉬 값을 생성할 수 있다! 해쉬 충돌의 예시 간단한 해쉬 함수 가 "키를 10으로 나눈 나머지" 라고 가정 이 경우, 키가 15와 25인 두 데이터 는 동일한 해쉬 값(즉, 5) 을 가진다. 따라서 이 두 데이터는 해쉬 테이블 에서 동일한 위치(또는 버켓)에 저장 되어야 한다. 이런 상황에서 해쉬 충돌 해결 방법(예: 체이닝, 오픈 어드레싱 등)을 사용 하여 충돌을 처리 해쉬 함수 : key % 10 키 값: 15, 25 해쉬 값: 15 % 10 = 5, 25 % 10 = 5 해쉬 테이블: +-------+-------+ | 인덱스 | 값 | +-------+-------+ | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | 15,25 | | 6 | | | 7 | | | 8 | | | 9 | | +-------+-------+ 키 값 '15'와 '25'는 동일한 해쉬 값 '5'를 가지므로 해쉬 테이블의 인덱스 '5' 위치에 저장 체이닝 방식을 사용하여 인덱스 5의 위치에 연결 리스트로 15와 25를 저장할 수 있다. 혹시 이해가 틀린 부분이 있다면 가르침을 주시면 성실히 공부하겠습니다.