假設我有一堆有很多屬性的對象。在我的系統中,我知道屬性的總集合,並且在任何給定時間,我都可以爲這些屬性生成一組權重。存儲對象的最佳方法是什麼,以便我能夠根據這些屬性權重找到最前面的n個對象。根據屬性權重查找對象
例如
對象A => [ATTRIBUTE1,attribute2,attribute4] 對象B => [attribute2,attribute5]
重量=> {ATTRIBUTE1 => 0.5,attribute2 => 1.2,attribute3 = > 1,屬性4 => -1,屬性5 => 10}
使用這些權重: 對象A的得分爲0.5 + 1.2 +(-1)= .7 對象B的得分爲1.2 + 10 = 11.2
所以對象B將成爲頂級對象。
您可以通過不繼續對已知不能包含前n項的部分進行排序來加快此目的的標準快速排序。 http://en.wikipedia.org/wiki/Selection_algorithm上有關於此方法和其他方法的非常好的維基百科文章 – mcdowella 2013-02-10 08:04:35