https://zhuanlan.zhihu.com/p/494306764

前言

不知道大家是不是和我一样,每次打开知乎,都要看一眼热榜,看看是否是有什么新闻,或者好玩的事情。

当然,不止知乎,百度的热搜、王者荣耀的排位、各大小说排行榜和电影排行榜等等,不一而足。

知乎的热榜

排行榜出现的越多,说明其越重要。

其实,和新闻一样,大部分排行榜也是有时效性的,所以才会有「日榜」,但也有时效性不是特别高的周榜和月榜,甚至季度榜和年度榜等。

小说、电视剧和电影排行榜

从类型上来划分,排行榜主要分为两种,一种是并列排行榜,即存在相同排名的情况(如成绩排行榜);一种是严格排行榜,即分先后顺序,不存在并列名次(如游戏分数排行榜)

当大家看排行榜的时候,是否想过排行榜功能是怎么实现的呢?如果没想过,现在是个机会,我们就以游戏分数行榜为例一起思考一下,一个排行榜应该具有哪些功能?

1、查看最分数最高的前N位是哪几位玩家,这是最基本的功能,也是最不能缺少的功能。

2、当一个新玩家出现时,一开始并不在排行榜中,因此需要向排行榜添加它的信息

3、原来在排行榜中的玩家,由于开学、工作或者其他原因,不再玩游戏,导致分数不再上升,则需要修改其排名和分数

4、查看某个玩家的排行是第几位,它的分数是多少

5、在植物大战僵尸无尽模式的积分排行榜中,用户得分越高,排行越靠前。如果分数相同,则先达成该分数的用户排在前面,如下图所示。对于这种场景,应该怎么实现?

6、排行榜中总共有多少记录