인프런 커뮤니티 질문&답변

정재윤님의 프로필 이미지
정재윤

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. Hash table는 어떤 자료구조 인가요?

Hash Table 질문

해결된 질문

작성

·

306

1

안녕하세요 강사님.

좋은 hash function의 조건에서 해시값이 고르게 분포되게 하는 것을 적어주셨는데, 공간효율성을 최대한 좋게 하기 위해서일까요?

 

아니면 다른 이유들도 있을까요?

답변 1

1

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 재윤님.

good hash function의 목표는 해시값을 고르게 분포되게 하는 것입니다. 그 이유는 공간 효율성도 있겠지만, 가장 중요한 이유는 시간 효율 때문이기도 합니다.

해시값이 고르게 분포되지 않으면 계속 겹치게 됩니다. 즉 충돌 collision이 발생하죠. collision이 발생할때마다 이를 해결해야 하는데, open addressing 방식이든 seperate chaining이든 어떤 방식을 사용하여 이 문제를 해결하든 추가적으로 시간이 소요됩니다.

그래서 좋은 hash function을 통해 최대한 해시값이 충돌하지 않는게 최우선이고, 그럼에도 불구하고 충돌이 발생하면 위의 두 가지 방법(open addressing, seperate chaining)을 통해서 해결하는 것입니다.

 

질문에 대한 답이 됐을까요!!?

정재윤님의 프로필 이미지
정재윤

작성한 질문수

질문하기