해쉬 충돌에 대해 질문드리고 싶습니다.
어느정도는 이해 한거 같습니다!질문 게시글을 작성을 한 이후 스스로 곰곰히 생각을 해보고 분석을 해보았습니다.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를 저장할 수 있다.혹시 이해가 틀린 부분이 있다면 가르침을 주시면 성실히 공부하겠습니다.