劍指offer·之30:最小的K個數

題目: 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。算法 分析: 利用堆排序,O(N logK),適合處理海量數據數組 (1) 遍歷輸入數組,將前k個數插入到推中;(利用multiset來作爲堆的實現)code 用前k個數字來創建大頂堆,然後拿後面的後面的n-k個元素依次與大頂堆中的最大值(即堆頂)元素比較,排序 (2)
相關文章
相關標籤/搜索