您的位置:首页 > 其它

关于朋友网六度人脉功能实现的猜测

2013-09-11 22:15 204 查看
 世界上任意两个人之间最多经过6跳就能建立联系,朋友网貌似实现了这种查找。一个最直接的想法就是找最短路径,但是不管是Dijkstra还是Floyd算法都是O(n^3)。况且六度人脉的功能在使用时感觉并不是精确的,因此在实际中应该用某种近似的算法来实现。知乎上有人发帖进行讨论(http://www.zhihu.com/question/20010259 ),感觉两个idea比较靠谱:1.
从两端各找三层,找公共点;2. 先聚类,在小圈子里面先算最短路径。

个人更倾向于第二个想法,因为qq上面还有个圈子的功能,基本就是聚类的实现吧。然后任意给出两个用户,如果属于同一个圈子,直接返回路径即可;如果属于不同的圈子,就可以找两个圈子的公共交集,从而找到相应路径。这个感觉直接用数据库就可以实现了。

前面跟陆总讨论的时候,感觉这块挺有意思,有必要记录下来。不过也都是一些猜测而已,欢迎拍砖。。。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: