gpt4 book ai didi

haskell - 纯函数式语言中的高效堆

转载 作者:行者123 更新时间:2023-12-03 07:55:13 25 4
gpt4 key购买 nike

作为 Haskell 的一个练习,我正在尝试实现堆排序。堆通常在命令式语言中实现为数组,但这在纯函数式语言中效率非常低。因此,我查看了二进制堆,但到目前为止我发现的所有内容都从命令式的角度描述了它们,并且所呈现的算法很难转化为功能设置。如何用 Haskell 等纯函数式语言高效地实现堆?

编辑:高效我的意思是它仍然应该在 O(n*log n) 中,但它不必击败 C 程序。另外,我想使用纯函数式编程。在 Haskell 中这样做还有什么意义?

最佳答案

在 Okasaki 的 Purely Functional Data Structures 的附录中有许多 Haskell 堆实现。 . (源代码可以在链接中下载。这本书本身很值得一读。)它们都不是二进制堆本身,而是 "leftist" heap非常相似。它具有 O(log n) 的插入、删除和合并操作。还有更复杂的数据结构,如 skew heaps , binomial heaps , 和 splay heaps具有更好的性能。

关于haskell - 纯函数式语言中的高效堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/932721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com