Jak*_*old 4 haskell functional-programming priority-queue finger-tree data-structures
我已经google了一下,发现了一篇关于Finger Trees的文章,它可用于实现具有适当渐近复杂度的优先级队列,但它们非常复杂,但仍然是我能找到的最简单的东西.
是否有一个简单的数据结构允许在Haskell中实现快速优先级队列? 想简单在你能解释给新手程序员.
bit*_*app 8
Hackage上的堆包声称是基于Okasaki的左派堆.
来自文档:
如果需要简单的最小或最大堆(始终将最小/最大元素保持在堆的头部),请选择MinHeap或MaxHeap. 如果您希望手动注释具有优先级的值,例如使用Int使用MinPrioHeap或MaxPrioHeap的IO()操作.它们管理(prio,val)元组,以便只有优先级(而不是值)影响元素的顺序. 如果您仍然需要不同的东西,可以通过实现HeapItem的实例来定义堆元素的自定义顺序,并让维护者知道缺少什么.
如果需要简单的最小或最大堆(始终将最小/最大元素保持在堆的头部),请选择MinHeap或MaxHeap.
如果您希望手动注释具有优先级的值,例如使用Int使用MinPrioHeap或MaxPrioHeap的IO()操作.它们管理(prio,val)元组,以便只有优先级(而不是值)影响元素的顺序.
如果您仍然需要不同的东西,可以通过实现HeapItem的实例来定义堆元素的自定义顺序,并让维护者知道缺少什么.
归档时间:
10 年,11 月 前
查看次数:
1385 次
最近记录:
8 年,11 月 前