Скажем, у меня есть куча объектов с большим количеством атрибутов. В моей системе я знаю полный набор атрибутов, и в любой момент времени я могу сгенерировать набор весов для этих атрибутов. Что было бы лучшим способом хранения объектов, чтобы я мог найти верхние n объектов на основе этих весов атрибутов.Поиск объектов на основе весов атрибутов
Например
объекта А => [attribute1, attribute2, attribute4] Объект В => [attribute2, attribute5]
Массы => {attribute1 => 0,5, attribute2 => 1,2, attribute3 = > 1, attribute4 => -1, attribute5 => 10}
с помощью этих весов: Объект а имеет оценку 0,5 + 1,2 + (-1) = 0,7 Объект в имеет балл 1,2 + 10 = 11,2
Таким образом, объект B будет верхним объектом.
Вы можете ускорить стандартную быструю сортировку для этой цели, не продолжая сортировать разделы, которые, как вы знаете, не могут содержать верхние n элементов. Существует очень хорошая статья в Википедии об этом и других подходах на http://en.wikipedia.org/wiki/Selection_algorithm – mcdowella