如果算出跟某人共同好友数最多的一些用户

发布于 2022-08-24 02:34:50 字数 123 浏览 7 评论 3

有很多用户,用户之间存在好友关系。
现在要针对某一个用户,算出跟该用户共同好友数最多的一些用户,按照共同好友数递减排列。

类似qq空间,facebook的好友推荐这种。
难道要遍历一遍所有用户么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

栩栩如生 2022-08-27 11:44:10

我的想法是,利用集合的运算进行求解比较快捷。所有的人构成一个S全集,每一个用户的好友就是全集中的一个子集,而你和所有的好友求共同好友就是子集与子集的求交操作。交集最大的那个就是你所求的好友。

利用逻辑运算的按位与运算求集合的交集是很快当的。哈哈!

黎歌 2022-08-27 10:14:14

应该通过数据库查询时就可以获得

青瓷清茶倾城歌 2022-08-27 05:00:24

说一个最简单的思路

最简单的图算法,遍历你所有的好友节点,取出每个好友的好友(二度好友)的列表,然后按二度好友的ID为key做计数操作,最后按计数排序就行了。遍历的用户数是你的二度好友的人数。

按这个思路,相信目前流行的图数据库(比如Neo4j)都能实现你的需求。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文