책 내용 질문하기
검색 Hashing의 Overflow
도서
2020 시나공 정보처리산업기사 필기 [기본서]
페이지
179
조회수
318
작성일
2020-03-18
작성자
탈퇴*원
첨부파일
177쪽의 Overflow의 설명을 보면 Bucket 내에 저장할 공간이 없는 상태라고 되어있고 179쪽의 Overflow 해결방법을 보면 충돌현상이 발생했을 때 그 버킷에 저장할 슬롯이 없으면 Overflow가 발생된다고 하는데, 저장할 슬롯이 없으면 저장할 공간이 있는 상태 아닌가요?
답변
2020-03-19 11:27:29

안녕하세요 길벗수험서 운영팀입니다.

 

...질문을 이해하지 못했습니다.

 

오버플로우는 레코드 크기가 하나의 버킷에 저장할 수 있는 용량보다 커서 발생합니다.

 

하나의 버킷은 여러 개의 슬롯으로 이루어집니다.

작은 크기의 레코드는 하나의 버킷에 여러 개가 저장될 수 있는데(collision), 만약 5바이트의 슬롯 2개가 있을 때 2바이트의 레코드 2개가 있다면 충돌이 발생하더라도 각각 슬롯에 레코드가 들어갈 수 있으면 오버플로우는 발생하지 않겠죠.

 

그런데 레코드 3개가 들어온다? 이러면 2개의 슬롯은 2개의 레코드가 차지하게 될테고, 남은 하나의 레코드로 인해 오버플로우가 발생하게 되죠.

 

음.. 가능한 해당 부분에 대해 설명해 보았는데, 질문의 의도와 맞았는지 모르겠습니다. 추가적인 질문이 있다면 이 문의글에 추가 질문해주시면 확인 후 답변드리겠습니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-03-19 11:27:29

    안녕하세요 길벗수험서 운영팀입니다.

     

    ...질문을 이해하지 못했습니다.

     

    오버플로우는 레코드 크기가 하나의 버킷에 저장할 수 있는 용량보다 커서 발생합니다.

     

    하나의 버킷은 여러 개의 슬롯으로 이루어집니다.

    작은 크기의 레코드는 하나의 버킷에 여러 개가 저장될 수 있는데(collision), 만약 5바이트의 슬롯 2개가 있을 때 2바이트의 레코드 2개가 있다면 충돌이 발생하더라도 각각 슬롯에 레코드가 들어갈 수 있으면 오버플로우는 발생하지 않겠죠.

     

    그런데 레코드 3개가 들어온다? 이러면 2개의 슬롯은 2개의 레코드가 차지하게 될테고, 남은 하나의 레코드로 인해 오버플로우가 발생하게 되죠.

     

    음.. 가능한 해당 부분에 대해 설명해 보았는데, 질문의 의도와 맞았는지 모르겠습니다. 추가적인 질문이 있다면 이 문의글에 추가 질문해주시면 확인 후 답변드리겠습니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.