問題描述
有N(N>>10000)個(gè)整數(shù),求出其中的前K個(gè)最大的數(shù)。
問題分析
需要前K個(gè)最大數(shù),一定會(huì)有比較的過程。因此可以采用排序或者最小堆方式解決。
解決辦法
- 若數(shù)據(jù)量不太大,可以用常規(guī)的排序方式;
- 若數(shù)據(jù)量太大,且中間數(shù)據(jù)無需保存,則可用最小堆解決;
- 若數(shù)據(jù)量太大,且中間數(shù)據(jù)需要保存,則可用外部排序解決;
總結(jié)
Top K 問題常見于結(jié)果推薦。