海量數據取top K問題

一個列表中有1億個數據,需要取出其中最大的前100個數據,如何儘可能的降低時間複雜度? 最容易想到的方法是先對這1億個數據排序,然後取出最大的100個數據,這樣的話時間複雜度就是O(nlogn),顯然方法不合適。 可以考慮的方法如下: 1.把這個列表截取成1000個子列表; 2.然後分別找出這1000個子列表中的最大的100個數據; 3.把這1000個子列表中的100個數據全部放到一個新的列表中,
相關文章
相關標籤/搜索