Hack News: 
Reddit: 
从数学角度两者相差不大,但是从实际开发角度,第二种(reddit)模型要远远优于第一种模型。
第一种算法的分数是一个动态值,如果想排序有两种途径:
select * from problems order by f(current_time, othor_value) desc limit 20;
很显然,上面的排序无法利用索引。
还有一种办法是每隔一段时间去计算一次所有条目的score值,这样是可以利用索引排序的,但是排名不够平滑。
Reddit的算法就完美解决了这个问题,无论什么时间,score都是一个定植,只需要在相关因素有变动的时候去更新一下对应的score值。既可以利用索引,排序又平滑,并且简单。
select * from problems order by rank desc limit 20;
转载于:https://blog.51cto.com/5941840/1372145
本文探讨了Reddit和HackNews两种算法的区别。虽然从数学角度来看两者相似,但从实际应用角度看,Reddit算法更优。Reddit算法确保了评分的稳定性和平滑性,通过定期更新评分值而非依赖动态计算,实现了高效排序。

被折叠的 条评论
为什么被折叠?



