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

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

작성한 질문수

입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]

[이론] 해시 충돌 해결(Chaining)

해시의 시간복잡도

작성

·

348

0

강의에서 실무에서는 10~20개의 연결리스트만하기때문에 해시의 O(1)을 갖는다고 하셨는데,

면접에서 물어볼경우는 O(n) 이라고 답하는게 맞을까요

O(1)이라고 하는게 맞을까요?

 

실무에서는 제한을 두지만 여기서는 그런 제한을 두고 물어볼거라는 의도가 있을까? 해서요

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

참 이 부분이 애매하긴 한데, 평균 : 0(1), 최악 : O(n)으로 대답하는게 이론적으로 맞다고 생각합니다.

면접에서 해시테이블의 시간복잡도를 물어본다면 저같으면 다음과 같이 대답할 것 같습니다.

"해시테이블의 탐색, 삽입, 삭제의 시간복잡도는 평균적으로 O(1)을 갖지만 충돌이 빈번하게 일어나면 최악의 경우인 O(n)의 시간복잡도로 수렴할 수 있습니다."

실무 얘기를 괜히 해서 헷갈릴 수 있겠네요. 영상을 수정해서 헷갈리지 않도록 하겠습니다.

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

작성한 질문수

질문하기