我只是注意到了什么,我想知道是否有任何原因。除了C ++(std :: priority_queue是最大堆)之外,我不知道其他提供最大堆的语言。
Python的heapq模块在列表顶部实现了一个二进制min-heap。
Java的库包含一个PriorityQueue类,该类实现了一个最小优先级队列。
Go的库包含一个container / heap模块,该模块在任何兼容的数据结构之上实现了min-heap。
苹果公司的Core Foundation框架包含一个CFBinaryHeap结构,该结构实现了最小堆。
我发现最大堆比最小堆更直观,而且从技术上讲,我认为实现差异只是更改比较运算符的问题。有什么真正的原因吗?大多数应用程序需要最小而不是最大堆吗?提前致谢