【发布时间】:2019-10-08 08:34:02
【问题描述】:
在 M.A. Weiss 第 2 版:C 中的数据结构和算法分析,当我了解 二叉堆 和 d-heap ,有描述当优先队列太大而无法完全加载到主存时,d-heap非常有用。
我想到了一句话,在我看来,当有 N 个元素时,d-heap 需要更多的指针(大约 Nd)但高度更小,而二进制堆需要的指针更少(大约 2N)但高度更大。所以 d-heap 似乎需要更多的空间,毕竟在我看来高度不消耗内存。如果这两个是通过数组而不是指针完成的,则需要相同的 N 个数组单元。所以我无法理解:
为什么 d-heap 对于主存来说比 binary heap 更有用?
【问题讨论】: