Есть ли в Haskell очередь приоритетов на основе кучи Фибоначчи?

Есть ли в Haskell очередь кучи / приоритета Фибоначчи? (Или даже асимптотически лучше?) В этом вопросе я нашел список различных реализаций очередей с приоритетами, но не смог найти, удовлетворяет ли какая-либо из них амортизированному времени выполнения кучи Фибоначчи:

  • Минимум поиска составляет O(1) амортизированное время.
  • Операции вставки, уменьшения ключа и слияния (объединения) являются амортизированным временем O(1).
  • Операции удаления и удаления составляют минимум O(log n) амортизированного времени.

Смотрите сравнение теоретических оценок.

1 ответ

Решение

Не куча Фибоначчи, но такая же хорошая: куча Эдварда Кметта, основанная на постоянном варианте Бродала / Окасаки.

Другие вопросы по тегам