最小堆解決Top K問題

問題描述: 有一組數據n個,要求取出這組數據中最大的K個值。 對於這個問題,解法有不少中。好比排序及部分排序,不過效率最高的要數最小堆,它的時間複雜度爲O(nlogk)。java 解題思路: 取出數組的前n個元素,建立長度爲n的最小堆。 從n開始循環數組的剩餘元素,若是元素(a)比最小堆的根節點大,將a設置成最小堆的根節點,並讓堆保持最小堆的特性。 循環完成後,最小堆中的全部元素就是須要找的最大的
相關文章
相關標籤/搜索