해시 테이블 (또는 해시 테이블에 구축 된 다른 데이터 구조)이 채워지는 경우 더 많은 버킷으로 새 테이블을 만들어야합니다. 그리고 지금까지 테이블에있는 항목 중 n 개를 입력하면 새 항목에 사용할 버킷 수를 어떻게 계산합니까?해시 버킷의 수
그래서 나는 100 개의 양동이가 있다고 가정 해 보겠습니다. 50 개의 항목이있을 때 재구성해야합니까? 500? 5000? 아니면 내가 가장 가득한 양동이를 찾아야합니까? 그런 다음 내가 그 지점에 도달했을 때 새로운 해시 테이블을 얼마나 크게 만들었습니까?
이와 관련하여, 얼마나 많은 항목이 들어갈 지 미리 아는 경우 양호한 평균 성능을 얻기 위해 버킷 수를 계산할 수있는 방법이 있습니까?
실제 답변은 특정 예에서 속도와 크기가 얼마나 중요한지와 같은 다른 고려 사항에 따라 달라 지지만 일반적인 길드 라인을 찾고 있습니다.
좋은 프로파일 링이 병목 현상이라고 지적하지 않는 한 이런 종류의 것을 최적화해서는 안된다는 것도 알고 있습니다. 나는 많은 해시 테이블을 사용하고 이것을 접근하는 방법을 궁금해하는 프로젝트에 대해서 생각하고있다.