Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 帮助创建按顶部排序算法_Algorithm_Sorting - Fatal编程技术网

Algorithm 帮助创建按顶部排序算法

Algorithm 帮助创建按顶部排序算法,algorithm,sorting,Algorithm,Sorting,我正在为我的公司在一个内部网站上工作,我需要添加一个模块,该模块将列出员工子女绘制的图纸。每个员工都可以上传任意数量的图纸,每次加载时,内联网主页上都会出现随机图纸 在每个绘图旁边都会有一个“Like”按钮,每次单击该按钮都会对绘图进行计票 还有一个“顶部图纸”部分,当然图纸将按“顶部”排序 问题是。。。我不知道怎样才能定义一张画在榜首,到目前为止,我所做的是按选票排序,这是不公平的,因为一个月前发布的一张画有很多选票,而今天发布的一张画不太可能获得比一个月前发布的那张更多的选票 任何帮助都将不

我正在为我的公司在一个内部网站上工作,我需要添加一个模块,该模块将列出员工子女绘制的图纸。每个员工都可以上传任意数量的图纸,每次加载时,内联网主页上都会出现随机图纸

在每个绘图旁边都会有一个“Like”按钮,每次单击该按钮都会对绘图进行计票

还有一个“顶部图纸”部分,当然图纸将按“顶部”排序

问题是。。。我不知道怎样才能定义一张画在榜首,到目前为止,我所做的是按选票排序,这是不公平的,因为一个月前发布的一张画有很多选票,而今天发布的一张画不太可能获得比一个月前发布的那张更多的选票

任何帮助都将不胜感激

每个用户只可以投票一次(公司有很多员工),我不存储图形有多少视图(我应该吗?)

我不知道用什么公式。。。我认为新上传的图纸也应该有机会排在榜首,对吗


谢谢

我会选择平均评分,不包括没有获得一定票数的图纸。那样的话,如果一张平局只有一票,但它是5颗星,它不会自动获胜。比如:

if votes >= minVotes:
    score = sum(ratings)/votes

你可以根据最近的投票情况进行排序。因此,现在获得投票的较新图形将优先于较旧的图形进行排序。很多网站都有多个按时间顺序排列的“热门”列表。比如“本周最佳”、“本月最佳”和“所有时间最佳”


如果只能有一个“顶部”列表,则可以对旧图形进行“老化”。因此,一张有10张选票但只有一个月的图可能会得到0.8的年龄乘数,而一张新的图可能会得到1.0的乘数。

XKCD的Randall Munroe有一篇关于reddit如何准确处理这一点的优秀文章。这篇文章链接到,它涵盖了所有幼稚的方法,描述了它们的缺点,然后继续解释如何建立一个评级系统,使其真正按照您的意愿运行。

结合Jim的想法,您可以对评级进行加权平均。我的数学不太好,所以有人有这种算法的.net实现吗??谢谢