• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kenneth
V2EX  ›  程序员

如何为极客新闻类网站设计一个牛逼的排序算法?

  •  
  •   kenneth · Aug 8, 2013 · 4976 views
    This topic created in 4839 days ago, the information mentioned may be changed or developed.
    几种可能用到的值
    评论数,回复数
    顶,踩
    5星评分

    大家来和我说一个牛逼的排序方法,适合digg类新闻的排序用,要和用户的评论数据能互动

    代码实现上要求,实时能变化。

    高手指导来下思路。
    10 replies  •  1970-01-01 08:00:00 +08:00
    felix021
    felix021
    Aug 8, 2013
    1
    这个是产品的工作,不是程序员的工作……主要还是要从产品运营的角度上来考虑,各个方面(时间、回复、评分)的权重应该怎样分配,然后根据这个来更新帖子的排序值——只要有了值,排序的实现什么的都是小事情。
    kenneth
    kenneth
    OP
    Aug 8, 2013
    2
    @felix021 一个好的排序算法还是很重要的。可以得到某一个时间段里最热的帖子,还要好看。
    pubby
    pubby
    Aug 8, 2013
    3
    找个曲线,再慢慢调参数

    digg类的还要跟时间相关的

    比如参考这个,自己慢慢调:http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html
    chmlai
    chmlai
    Aug 8, 2013
    5
    @Mutoo 正想说阮一峰的博客.
    jjplay
    jjplay
    Aug 8, 2013
    6
    计算单一用户停留时间 滚动时间 digg ,然后综合 平均 。。。我是随便说说
    felix021
    felix021
    Aug 8, 2013
    7
    @kenneth 你没看懂我的意思。我的意思是,怎么定策略是难的,这个取决于你的产品的特征(比如论坛类的,最后回复时间的权值是100%,博客类的产品发布时间的权值是100%)。同样是digg类的产品,也可以为不同的参数赋不同的权值,实现不同的侧重点。一旦确认了这个策略,具体的代码实现总是很简单的。
    stackpop
    stackpop
    Aug 8, 2013
    9
    排序算法用堆排序就行了,评分变化的时候实时调整堆,每次代价是logN。

    至于评分如何动态变化,这个看产品怎么考虑啊,比如,多一条评论和点赞+10分
    stackpop
    stackpop
    Aug 8, 2013
    10
    另外堆也是非常适合插入的,插入一条新闻进入原来的topN堆就行了,代价很小
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   679 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:23 · PVG 05:23 · LAX 13:23 · JFK 16:23
    ♥ Do have faith in what you're doing.