假设我有一堆有很多属性的对象。在我的系统中,我知道属性的总集合,并且在任何给定时间,我都可以为这些属性生成一组权重。存储对象的最佳方法是什么,以便我能够根据这些属性权重找到最前面的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