繁体   English   中英

O(k)算法从最小堆中查找第k个最小元素

[英]O(k) algorithm to find kth min element from a min heap

o(klogn)解决方案对于找到第k个最小值非常简单。这里的O(klogk)时间算法是从二进制堆中找到第k个最小元素的一种方法是O(klogk)解决方案。 但是我在想一种算法,如果正确的话可能是o(k)。 从min堆中,获取前k个元素(前k个节点,遍历wise)并将其存储在数组中。现在max将此数组自下而上进行最大堆,这将花费o(k)时间。此堆的根是所需的答案。谁能看到该算法的缺陷?

考虑这个例子

        1
    2       11
  3   4   12  13

如果要获取第3个min元素,则它将不在第3个第一个节点中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM