다이나믹 퍼펙트 해싱에 비해 뻐꾸기 해싱의 장점은 무엇입니까?


12

동적 완벽한 해시 테이블뻐꾸기 해시 테이블 은 최악의 경우 O (1) 조회와 예상되는 O (1) 시간 삽입 및 삭제를 지원하는 두 개의 서로 다른 데이터 구조입니다. 둘 다 O (n) 보조 공간이 필요하며 작업을 위해 해시 함수 패밀리에 액세스 할 수 있습니다.

나는이 두 데이터 구조가 모두 아름답고 훌륭하다고 생각하지만, 이들 중 하나가 다른 방법보다 언제 어떻게 선호되는지 잘 모르겠습니다.

이러한 데이터 구조 중 하나가 다른 데이터 구조보다 분명한 이점이있는 특정 컨텍스트가 있습니까? 아니면 그들은 대부분 상호 교환이 가능합니까?


이러한 기술 중 하나가 실제로 실제로 사용되는지 확실하지 않습니다. 일반적으로 최고의 점근 경계를 제공하는 이러한 종류의 데이터 구조는 주로 표기법에 숨겨진 큰 상수를 가지고 있기 때문에 주로 연구 관심 대상입니다. 실제로는 상수가 큰 복잡한 O ( 1 )에 비해 상수가 작은 O ( log n ) 기법을 더 간단하고 구현 하기가 더 좋습니다. OO(logn)O(1)
Tom van der Zanden

@TomvanderZanden 그것은 사실입니다. 또한 한 접근 방식이 다른 접근 방식의 이론적 이점에 관심이 있습니다. 각 접근 방식이 다른 접근 방식보다 좋은 이론적 속성이 있습니까?
templatetypedef

@templatetypedef, 그런 다음 질문에 추가하는 것이 좋습니다. 사람들은 귀하의 질문을 이해하기 위해 의견을 읽을 필요가 없습니다. 의견은 일시적이며 언제든지 사라질 수 있습니다.
DW

예, 이러한 기술은 실제로 틈새 영역에서 실제로 사용됩니다.
가명

1
뻐꾸기 해싱의 한 가지 장점은 이해하고 구현하기 쉽다는 것입니다. 또한 imho, 동적 완벽한 해싱보다 분석하기가 훨씬 쉽습니다.
A.Schulz

답변:


3

Dietzfelbinger 등의 의미에서 동적 완벽한 해싱. 2 개의 독립적 인 해싱 만 필요합니다 . 트위스트 테이블 해싱 및 "스 태쉬가있는 뻐꾸기 해싱에 대한 명시적이고 효율적인 해시 패밀리 충분"과 같은 뻐꾸기 해시 테이블의 간단한 해싱에 대한 결과가 있지만, 원래의 동적 완벽한 해싱은 어떤 의미에서 더 강력합니다.


OP의 명확한 설명을 참조하십시오. "저는 한 접근법의 다른 장점에 대한 이론적 장점에 관심이 있습니다. 각 접근법이 다른 접근법보다 좋은 이론적 특성이 있습니까?"
jbapple

3

뻐꾸기 해싱에서는 조회를 병렬로 수행 할 수 있지만 Dietzfelbinger 등의 원래 동적 완벽한 해싱 체계에서는 조회에 두 개의 체인 메모리 액세스가 필요하며, 두 번째 액세스는 첫 번째에서 검색된 정보를 사용합니다.


1

각 슬롯이 둘 이상의 항목을 보유 할 수있게함으로써 뻐꾸기 해싱의 공간 효율성을 높이는 것은 상대적으로 쉽습니다. 크기가 4 인 슬롯의 경우 공간 효율성은 95 %와 비슷합니다. 다시 말해, 항목이 들어갈 수있는 장소뿐만 아니라 테이블 공간의 95 %가 항목을 보유하는 데 사용될 때까지 항목을 삽입 할 수 있습니다.

한편, Dietzfelbinger et al. 다이내믹 퍼펙트 해싱 (Dynamic Perfect Hashing)에 대한 논문은 테이블이 3 %를 넘지 않는 한 삽입 작업이 진행될 수 있음을 증명합니다.


두 답변을 함께 결합 할 수도 있습니다. :-)
templatetypedef

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.