기수 힙
Radix heap![]() |
기수 힙은 모노톤 priority 큐의 연산을 실현하기 위한 데이터 구조입니다.그런 다음 키가 할당되는 요소 세트를 관리할 수 있습니다.작업의 실행 시간은 가장 큰 키와 가장 작은 키 또는 상수의 차이에 따라 달라집니다.데이터 구조는 주로 크기가 기하급수적으로 증가하는 일련의 버킷으로 구성됩니다.
전제 조건
- 모든 키는 자연수입니다.
- 최대 키 - 최소.상수 C의 경우 키{\(\ C;
- extract-min 연산은 단조롭습니다.즉, 연속되는 extract-min 콜에 의해 반환되는 값은 단조롭게 증가합니다.
데이터 구조 설명
가장 중요한 3가지 필드는 다음과 같습니다.
- 크기 B : g ( + ) +1 ( \ B : = \ ( C + 1)\1 의 b b}는 가장 낮은 인덱스로서0 을 하여 버킷을 저장합니다.
- B +의 u u B최하위 인덱스로 0 포함) 버킷의 (하위) 경계를 저장합니다.
- \ , 、 각 x { \ x}에 대해 저장되는 버킷을 보관합니다.
위 그림은 데이터 구조를 보여줍니다.다음 불변 사항이 적용됩니다.
- [ i] [i {\ b + [ ]< u [ + 1] 의 값을 통해 b[의 키가 업 또는 다운됩니다.
- [ ] , [ ]= [ + 1 , [ ]= [ 0 ]+1 [ B ]=\및 [ ] - [ ] - [ ] 、 [ i
한계치(및 버킷이 유지하는 범위)의 지수적 증가에 주목하는 것이 중요합니다.이와 같이 필드량의 로그 의존성은 두 키 값 사이의 최대 차이인 값 C가 됩니다.
운용
초기화 중에는 빈 버킷이 생성되고 u(불변 2에 따라)\u(\displaystyle 가 생성됩니다. O O(B
삽입 중 새 x {\ 가 버킷을 통해 오른쪽에서 왼쪽으로 선형으로 이동하고 k {k(의 새 요소는 왼쪽 버킷에 u [k {u[ k ; 실행 O로 저장됩니다.
감소 키의 경우 먼저 키 값이 감소합니다(불변수에 대한 준수 검사). 다음 b m { }필드를 사용하여 요소를 찾습니다.필요한 경우 삽입 조작과 유사하게 왼쪽으로 반복됩니다.실행 시간은 ( ) {O (1) ( amorated ) 。
extract-min 조작은 [ b [ ]에서 요소를 삭제하고 반환합니다.b [ b [ 0 ]{ display b [ ]} 가 아직 비어 있지 않은 경우는, 조작이 종료됩니다.그러나 빈 버킷이 비어 있으면 다음으로 큰 버킷이 검색되고 가장 작은 요소가 되며u [ u [ ])가 k로 설정됩니다(단일성이 필요합니다).다음으로 불변수에 따라 버킷 경계가 재정의되고 새로 생성된 버킷에 대해 요소가 [ { b {i] {displaystyle O(1) } (변환)O ({ O(1} (변환)
표시된 경우 m이 업데이트됩니다.
레퍼런스
- B.V. 체르카스키, A.V. 골드버그, C.실버스타인:버킷, 힙, 리스트 및 모노톤 우선 큐(추상) : 디스크리트 알고리즘에 관한8년간의 ACM-SIAM 심포지엄의 속행.1997년 1월, 페이지 83-92