簡體   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