1
felix021 2013-08-08 17:56:31 +08:00
这个是产品的工作,不是程序员的工作……主要还是要从产品运营的角度上来考虑,各个方面(时间、回复、评分)的权重应该怎样分配,然后根据这个来更新帖子的排序值——只要有了值,排序的实现什么的都是小事情。
|
3
pubby 2013-08-08 18:11:27 +08:00
找个曲线,再慢慢调参数
digg类的还要跟时间相关的 比如参考这个,自己慢慢调:http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html |
4
Mutoo 2013-08-08 18:13:09 +08:00
|
6
jjplay 2013-08-08 18:41:09 +08:00
计算单一用户停留时间 滚动时间 digg ,然后综合 平均 。。。我是随便说说
|
7
felix021 2013-08-08 19:03:11 +08:00
@kenneth 你没看懂我的意思。我的意思是,怎么定策略是难的,这个取决于你的产品的特征(比如论坛类的,最后回复时间的权值是100%,博客类的产品发布时间的权值是100%)。同样是digg类的产品,也可以为不同的参数赋不同的权值,实现不同的侧重点。一旦确认了这个策略,具体的代码实现总是很简单的。
|
8
halfzeng 2013-08-08 19:34:16 +08:00
|
9
stackpop 2013-08-08 19:39:46 +08:00
排序算法用堆排序就行了,评分变化的时候实时调整堆,每次代价是logN。
至于评分如何动态变化,这个看产品怎么考虑啊,比如,多一条评论和点赞+10分 |
10
stackpop 2013-08-08 19:40:55 +08:00
另外堆也是非常适合插入的,插入一条新闻进入原来的topN堆就行了,代价很小
|