Q
排名相关算法
1
A
回答
2
这可能取决于您对两个排名之间“距离”的衡量标准。
例如,如果我们定义
dist(R1, R2) = Sum abs(position of i in R1 - position of i in R2), over all i
然后可以存储在第一排名每i
位置在阵列
即
pos[Peter] = 3
装置那Peter
显示为你的第三个朋友排行。
通过使用pos
计算上述总和,可以在线性时间内找到最接近的排名。
2
我认为你应该比较它们之间的等级距离,但使用权重。例如,如果用户排名第一位在第十位,这是一个很大的差异,但如果用户排名第101位在第110位,这不是一个大的变化。所以你应该对更高等级的用户差异设置更高的系数。
相关问题
- 1. 搜索排名/关联算法
- 2. A排名算法
- 3. 点击相关度排名
- 4. PostgreSQL排名和相关
- 5. 排名算法来比较“排名”
- 6. 用户排名算法
- 7. 页面排名算法
- 8. 选择排名算法
- 9. 排名比较算法
- 10. 到期页排名算法
- 11. 排名算法在python
- 12. 排名/声誉算法
- 13. 评估排名算法
- 14. 总得分排名算法
- 15. 列表排名算法
- 16. 相关产品算法
- 17. 期限相关性算法
- 18. 相关标签算法
- 19. 图相关发现算法
- 20. 算法将相关项目
- 21. 投票算法:如何计算排名?
- 22. 按相关性排序图像的算法
- 23. 关于与回文相关的算法
- 24. 排名双色相关与r
- 25. Spearman相关性排名前X%%
- 26. 相关计算
- 27. 30级的Python排名算法
- 28. 命名排序算法。它是QuickSort吗?
- 29. 如何确定排名算法标准
- 30. 苹果的拼音排名算法
我想你可以通过使用[数组倒数算法](http://stackoverflow.com/questions/337664/counting-inversions-in-array)在O(n日志n)中运行。基本上,你把你原来的排名,你分配给每个项目一个ID递增顺序,然后你在“不同的排名”为您的每个项目分配给他们相应的ID从初始排名(你应该能够要有效地做到这一点),然后你应用我上面提到的算法分配给“不同排名”的ID。 – 2013-03-21 12:09:30