【发布时间】:2010-12-08 09:30:06
【问题描述】:
有没有一种有效的算法来合并存储为数组的 2 个最大堆?
【问题讨论】:
-
是的。到目前为止,您尝试过什么?
-
高效是什么意思?
-
好吧,如果我只是以随机顺序将每个元素插入新堆,我认为这将是 O(nlogn) 的平均值。所以我可能正在寻找 O(log(n)^2)
-
把评论放在问题里面,说明你已经思考过这个问题,并且对除了琐碎的解决方案感兴趣。
-
@Yaron:您可以在 O(N + k) 中构建新堆。只需连接数组并使用默认方法构建一个新堆。
标签: algorithm data-structures merge heap