Brodal 큐의 의사 코드


12

Brodal heap 에 대한 추가 리소스를 찾으려고 합니다. 내가 찾은 것은 Brodal-Okasaki heaphaskell 구현 이지만, 그것들이 비스듬한 힙 이라고 생각 합니다. 맞습니까? 또한, 나는 Haskell에서 문맹하므로 그다지 도움이되지 않습니다. 누구나 의사 코드, C, C ++, Python에서 Brodal 대기열 구현을 알고 있거나 알고 있습니까?

위의 가정이 잘못된 경우에도 수정하십시오.


3
Brodal 대기열을 구체적으로 구현하려고합니까, 우선 순위 대기열을 효율적으로 구현하려고하십니까? Brodal은 그의 논문의 결론에서이 분야에 대한 추가 연구 없이는 실용적이지 않다고 언급했다. 그의 논문은 광범위하게 인용되었는데 아마도 유용한 것이 있을까요? 알고리즘에 대한 CLR 소개에는 우선 순위 대기열에 대한 섹션이 있지만 우선 순위 대기열의 훨씬 이전 작업을 참조합니다.
Jay Elston

2
원래 Brodal 큐는 파괴적인 할당을 사용하므로 Haskell 버전에는 약간의 수정이 필요합니다.
Fred Foo

답변:


2

Haskell 구현은 기능적인 Brodal-Okasaki 힙을 기반으로하며 , 스큐 힙의 변형입니다. 논문은 매우 명확하게 작성되었으므로 좋은 자료가 될 것입니다.

구현과 관련하여 Scala 에는 scalaz 라이브러리의 일부로 구현도 있습니다.


1

아직 코드를 Haskell이 아닌 것으로 변환하는 방법을 아직 알지 못했기 때문에 이것은 부분 답변입니다. 내가 Haskell을 사용해야한다고 말할 수있는 이유는 Haskell이 게으 르기 때문입니다. Brodal-Okasaki 더미는 종이에서 게으른 방식으로 암시되어야합니다. 따라서 필요한 것은 BO 힙에 필요할 수있는 다른 요구 사항 (순전히 기능적인 데이터 구조 등)과 함께 해당 기능을 다른 언어로 제공하는 방법입니다.

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