我有一个朋友排行榜。然后,我得到更多相同朋友但排名不同的列表。是否有算法来检查哪个列表最接近原始排名?
谢谢
这可能取决于您对两个排名之间“距离”的衡量标准。
例如,如果我们定义
dist(R1, R2) = Sum abs(position of i in R1 - position of i in R2), over all i
然后您可以将每个i
排名中的第一个位置存储在一个数组中
IE
pos[Peter] = 3
表示Peter
在您的排名中显示为第三个朋友。
通过使用 计算上面的总和,可以在线性时间内找到最接近的排名pos
。
我认为您应该比较它们之间的等级距离,但使用权重。因为例如排名第1的用户在第10位,这是一个很大的差异,但是如果排名第101位的用户在第110位,则变化不大。因此,您应该对排名较高的用户的差异设置更高的系数。