我有朋友排名列表。然后,我得到了更多相同朋友但排名不同的列表。 是否有算法来检查哪个列表最接近原始排名列表?
由于
答案 0 :(得分: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
计算上述总和,可以在线性时间内找到最接近的排名。
答案 1 :(得分:2)
我认为你应该比较它们之间的等级距离,但是使用权重。因为例如,如果排名第一的用户排在第10位,那么这是一个很大的区别,但如果排名第101位的用户排在第110位,那不是一个很大的变化。因此,您应该对较高级别用户的差异设置更高的系数。