有很多用戶,用戶之間存在好友關系?,F在要針對某一個用戶,算出跟該用戶共同好友數最多的一些用戶,按照共同好友數遞減排列。類似qq空間,facebook的好友推薦這種。
2 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
說一個最簡單的思路
最簡單的圖算法,遍歷你所有的好友節點,取出每個好友的好友(二度好友)的列表,然后按二度好友的ID為key做計數操作,最后按計數排序就行了。遍歷的用戶數是你的二度好友的人數。
按這個思路,相信目前流行的圖數據庫(比如Neo4j)都能實現你的需求。

不負相思意
TA貢獻1777條經驗 獲得超10個贊
我的想法是,利用集合的運算進行求解比較快捷。所有的人構成一個S全集,每一個用戶的好友就是全集中的一個子集,而你和所有的好友求共同好友就是子集與子集的求交操作。交集最大的那個就是你所求的好友。
利用邏輯運算的按位與運算求集合的交集是很快當的。哈哈!
添加回答
舉報
0/150
提交
取消