вы можете обработать следующим образом: (я предполагаю, что каждое приложение относится только к одной категории)
Допустим, у вас есть следующий рейтинг для каждой категории C1 ..C10
C1 C2 ... C10
app1-1 app2-1
app1-2 &pp2-2
.. ...
app1-100 app2-100 app10-100
и
общий рейтинг 100 лучших приложений (например):
C app1-1 app1-2 app2 -1 ... app2-10
Теперь, используя эти 2 таблицы, сначала вам нужно упорядочить C1-C10 в том же порядке, что и app1-1 - app10-1, появиться в списке C, так что вы «знаете» (это больше похоже на предположение), какая категория более важным с точки зрения рейтинга.
Затем используйте эту информацию для сортировки остальных.
Теперь я собираюсь использовать более простой пример, чтобы показать, как упорядочить остальные элементы.
давайте возьмем 3 категории и 12 приложений.
C1 C2 C3
app1 app21 app31
app2 app22 app32
app3 app23 app33
app4 app24 app34
и C = app1 app2 app21 app31
1.первая отметка всех элементов в C в таблице:
app1 app21 ->app31
| /
app2 app22 app32
app3 app23 app33
app4 app24 app34
2.в секунду, отсортировать оставшиеся элементы
Поскольку у вас нет больше информации, хорошим приближением было бы рассмотрение каждой строки слева направо (от списка с большим рейтингом до списка с более низким рейтингом), которое дает:
app3 app22 app32 app4 app23 app33 app24 app34
тогда общее распределение будет:
app1 app2 app21 app31 app3 app22 app32 app4 app23 app33 app24 app34
Надеюсь, этот пример прояснит мои идеи и поможет.
Я думаю, что этот подход использует всю информацию, которую вы имеете в C1 ... C10 и C.