더북(TheBook)

왜 이런 이야기를 하는 걸까? 일반적으로 딕셔너리의 키 검색 성능은 O(1)이지만, 연결 리스트의 검색 오버헤드는 O(N)이기 때문이다. 즉, 중복 횟수가 증가하면 검색 성능이 저하된다. 예를 들어 항상 4를 반환하는 GetHashCode 함수가 있다고 가정해 보자.2

public override int GetHashCode() {
    return 4; // 주사위를 던져서 얻은 숫자
}

이 경우 새로운 항목을 추가할 때 딕셔너리의 내부 구조는 그림 2-9와 같다.

▲ 그림 2-9 GetHashCode( )를 엉망으로 만들 때의 딕셔너리

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.