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