CN111192027B - 榜单处理方法、装置及计算机可读存储介质 - Google Patents
榜单处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111192027B CN111192027B CN201911423275.5A CN201911423275A CN111192027B CN 111192027 B CN111192027 B CN 111192027B CN 201911423275 A CN201911423275 A CN 201911423275A CN 111192027 B CN111192027 B CN 111192027B
- Authority
- CN
- China
- Prior art keywords
- value
- ranking
- ranking value
- list
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 title claims description 21
- 238000003672 processing method Methods 0.000 claims abstract description 8
- 238000003780 insertion Methods 0.000 claims description 21
- 230000037431 insertion Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000004308 accommodation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000012528 membrane Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/105—Human resources
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Manipulator (AREA)
Abstract
本发明提供了一种榜单处理方法、装置及计算机可读存储介质,属于计算机技术领域。该方法可以基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定第一待插入成员的第一排名值及至少一个相邻排名值,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布。这样,一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保后续操作中能够顺利插入第一待插入成员,提高榜单生成的效果。
Description
技术领域
本发明属于计算机技术领域,特别是涉及一种榜单处理方法、装置及计算机可读存储介质。
背景技术
随着信息技术的发展,生成各种相关的排行榜单以进行推荐或者为终端用户的行为提供参考,已成为信息技术应用中的一项重要内容。
现有技术中,在生成榜单时,往往是将每个待插入成员插入同一榜单中,具体的,在插入待插入成员时,可以按照该待插入成员的目标名次以及当前榜单中的已插入成员,为该待插入成员生成一个排名值,然后基于该排名值将该待插入成员插入榜单中,其中,榜单中已插入成员的名次由该成员的排名值决定,例如,排名值越低的成员在榜单中的名次可以越高,或者,排名值越高的成员在榜单中的名次可以越高。
但是,随着待插入成员的不断插入,榜单中每个已插入成员的排名值可能会越来越密集,这样,就会导致无法继续插入其他成员的问题,进而导致榜单生成效果较差。
发明内容
有鉴于此,本发明提供一种榜单处理方法、装置及计算机可读存储介质,在一定程度上解决了由于待插入榜单中已插入成员的排名值过于密集,导致无法继续插入成员的问题。
第一方面,提供了一种榜单处理方法,该方法可以包括:
基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值;
若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
第二方面,提供了一种榜单处理装置,该装置可以包括:
第一确定模块,用于基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值;
调整模块,用于若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
第三方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的榜单处理方法的步骤。
针对在先技术,本发明具备如下优点:
可以基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定第一待插入成员的第一排名值,以及确定第一待插入成员的至少一个相邻排名值,接着,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布。这样,通过在第一排名值与任一相邻排名值的差值不大于预设阈值,即,插入该第一待插入成员之后,可能会导致待插入榜单中成员的排名值过于密集,无法继续插入其他成员的情况下,先对每个已插入成员的排名值进行调整,以降低榜单中排名值的密集程度,进而一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保后续操作中能够顺利插入第一待插入成员,提高榜单生成的效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种榜单处理方法的步骤流程图;
图2-1是本发明实施例提供的一种榜单处理方法的步骤流程图;
图2-2是本发明实施例提供一种插入过程示意图;
图2-3是本发明实施例提供一种调整过程示意图;
图3是本发明实施例提供的一种榜单处理装置的框图;
图4是本发明实施例提供的另一种榜单处理装置的框图;
图5为实现本发明各个实施例的一种终端的硬件结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是本发明实施例提供的一种榜单处理方法的步骤流程图,应用于终端,如图1所示,该方法可以包括:
步骤101、基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值。
本发明实施例中,该待插入榜单可以是需要生成的榜单,已插入成员可以是已经插入至该待插入榜单中的成员,第一待插入成员可以是需要插入至该待插入榜单中的成员,其中,成员可以对应一个应用中的用户,进一步地,第一待插入成员的第一目标名次可以是第一待插入成员需要在待插入榜单中呈现的名次,示例的,该第一目标名次可以为第3名,那么可以认为需要将该第一待插入成员作为该待插入榜单中的第3名进行呈现。
进一步地,该第一目标名次可以是基于该第一待插入成员的相关信息预先确定的,示例的,假设该待插入榜单是游戏应用中体现玩家用户活跃度的榜单,那么该相关信息可以是能够体现该成员对应的用户的活跃度的信息,又或者,假设该待插入榜单是社交应用中体现用户影响力的榜单,那么该相关信息可以是能够体现该成员对应的用户的影响力的信息。
进一步地,由于待插入榜单中每个成员的名次是基于成员的排名值决定的,因此,可以基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,生成第一待插入成员的第一排名值,其中,该第一排名值可以是能够使该第一待插入成员在该待插入榜单中以第一目标名次呈现的值。
示例的,假设该第一目标名次为第3名,那么可以确定已插入成员中的第3名的排名值及第2名的排名值,为该第一待插入成员生成一个位于第3名的排名值及第2名的排名值之间的排名值,以作为第一排名值,例如,可以将第3名的排名值及第2名的排名值的平均值作为该第一排名值,或者,在第3名的排名值及第2名的排名值之间任选一个值作为该第一排名值。这样,可以确保基于该第一排名值将该第一待插入成员插入该待插入榜单之后,能够以第3名进行呈现。
进一步地,本发明实施例中,该相邻排名值可以是将第一待插入成员的插入至待插入榜单之后,与该第一待插入成员的第一排名值相邻的值,其中,该相邻的值可以是与该第一待插入成员相邻的已插入成员的排名值,进一步地,在该第一待插入成员为第一名或者最后一名时,该第一待插入成员的第一排名值可能会与第一预设取值范围的定义的第一最大端值或第一最小端值相邻。或者,在该第一待插入成员为该待插入榜单中的第一个成员时,则该第一待插入成员的第一排名值就会与第一预设取值范围的定义的第一最大端值及第一最小端值相邻,因此,该相邻排名值也可以是与该第一预设取值范围的定义的第一最大端值及第一最小端值。其中,该第一预设取值范围可以是在向待插入榜单插入成员时,为成员选取排名值时,所使用的取值范围,即,每个插入该待插入榜单的成员,其排名值均位于该第一预设取值范围内,进一步地,第一最大端值可以是该第一预设取值范围内的最大值,第一最小端值可以是该第一预设取值范围内的最小值。
步骤102、若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
本发明实施例中,该预设阈值可以是预先设定的,具体的,由于榜单中各个已插入成员的排名值之间的差值越小,则密集程度就会越大,即,排名值之间的差值可以一定程度上表示密集程度,因此,可以预先进行测试,以确定出会导致无法继续插入的密集程度对应的差值,将该差值作为该预设阈值。
进一步地,如果第一排名值与任一相邻排名值的差值不大于预设阈值,则可以认为,将该第一待插入成员插入该待插入榜单之后,可能会导致待插入榜单的密集程度,达到无法继续插入其他成员的程度,因此,可以在第一排名值与任一相邻排名值的差值不大于预设阈值的情况下,对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布,进而一定程度上降低密集程度,降低后续过程中出现无法插入的问题。同时,控制每个已插入成员的排名值按照每个已插入成员的名次分布,可以确保调整之后,每个已插入成员在待插入榜单中的名次不会发生变化,进而确保榜单的准确性。
综上所述,本发明实施例提供的榜单处理方法,可以基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定第一待插入成员的第一排名值,以及确定第一待插入成员的至少一个相邻排名值,接着,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布。这样,通过在第一排名值与任一相邻排名值的差值不大于预设阈值,即,插入该第一待插入成员之后,可能会导致待插入榜单中成员的排名值过于密集,无法继续插入其他成员的情况下,先对每个已插入成员的排名值进行调整,以降低榜单中排名值的密集程度,进而一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保后续操作中能够顺利插入第一待插入成员,提高榜单生成的效果。
图2-1是本发明实施例提供的一种榜单处理方法的步骤流程图,应用于终端,如图2-1所示,该方法可以包括:
步骤201、基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值。
本步骤中,确定第一待插入成员的第一排名值的操作,以及,确定第一待插入成员的至少一个相邻排名值的操作可以是同时进行的,也可以是按照先后顺序依次进行的。具体的,可以先执行确定第一排名值的操作,再执行确定相邻排名值的操作,或者先执行确定相邻排名值的操作,再执行确定第一排名值的操作,本发明实施例对此不作限定。
进一步地,在确定第一待插入成员的第一排名值时,若待插入榜单中的已插入成员为0,即,当前的待插入榜单中还不存在成员,则可以通过子步骤(1)实现生成第一排名值。
子步骤(1):基于第一预设取值范围定义的两个端值,生成第一排名值。
其中,该第一排名值可以位于该第一预设取值范围内,该第一预设取值范围可以是从最大可选数值范围中预先选取的,该最大可选数值范围可以是基于设备提供的用于表示排名值的位数确定的。示例的,假设设备提供的用于表示排名值的位数为64位,而64位整数可表示的最大值为264-1,因此,该最大可选数值范围可以为(0,264-1),该第一预设取值范围可以为(0,232-1),可以看出,该第一预设取值范围处于该最大可选数值范围中。
进一步地,该第一预设取值范围定义的两个端值可以包括该第一预设取值范围定义的第一最大端值及第一最小端值,示例的,该第一最小端值可以为0,该第一最大端值可以为232-1。具体的,基于第一最小端值及第一最大端值,生成第一排名值时,可以是从处于第一最小端值与第一最大端值之间的值中,任选一个值作为第一排名值,例如,可以选择1作为第一排名值。也可以是计算第一最小端值及第一最大端值的平均值作为第一排名值。示例的,以Smin表示第一最小端值,以Smax表示第一最大端值,score1表示第一排名值,那么可以确定score1=(Smin+Smax)/2。本步骤中,通过在待插入榜单中还不存在已插入成员时,为第一待插入成员设置位于第一预设取值范围内的排名值,可以确保第一待插入成员的排名值不会超出预设取值范围,进而可以降低由排名值超出取值范围导致的插入故障,同时,一定程度上也可以确保后续基于已插入成员继续插入的其他成员时,其他成员的排名值均能位于该第一预设取值范围。
进一步地,在确定第一待插入成员的第一排名值时,若待插入榜单中的已插入成员不为0,即,当前的待插入榜单中存在已插入成员,则可以根据该第一目标名次,生成第一排名值。具体的,根据该第一目标名次,生成第一排名值的操作可以通过下述子步骤(2)~子步骤(4)实现:
子步骤(2):若所述第一目标名次为第一名,则基于所述待插入榜单中名次最高的已插入成员的最高排名值、第一参考端值及预设增量,生成所述第一排名值。
本步骤中,该最高排名值指的是名次最高的已插入成员的排名值,该预设增量可以是根据实际需求预先设定的,示例的,预设增量可以为1。该第一参考端值可以是第一预设范围定义的两个端值中与该最高排名值的差值最小的端值。具体的,若已插入成员的名次与已插入成员的排名值成反比,即,排名值越低,名次越高,那么第一参考端值可以为第一最小端值,相应地,生成第一排名值时,可以先计算最高排名值与该预设增量的差值,然后将该差值与第一最小端值中的最大值确定为该第一排名值。示例的,以step表示预设增量,以score_high表示最高排名值,那么第一排名值score1=max(Smin,score_high-step)。进一步地,若已插入成员的名次与已插入成员的排名值成正比,即,排名值越高,名次越高,那么该第一参考端值可以为第一最大端值,相应地,生成第一排名值时,可以先计算最高排名值与该预设增量的和值,然后将该和值与第一最大端值中的最小值确定为该第一排名值。示例的,第一排名值可以为score1=min(Smax,score_high+step)。
由于最高排名值和第一参考端值之间的差距往往会比较小,因此,需要将第一待插入成员作为第一名插入该待插入榜单时,如果从该最高排名值与该第一参考端值之间选择一个值作为第一排名值,例如,将两者的平均值作为第一排名值的话,会导致第一待插入成员的排名值与该第一参考端值之间的差距损失更多,因此,可以按照预设增量,有规律的对名次最高的已插入成员的排名值进行修改,进而可以较大程度的利用最高排名值与该第一参考端值之间的差距,增大从该差距中所能选取的值的数量,进而增大在第一预设范围内能插入的成员数,提高榜单的容纳量。
子步骤(3):若所述第一目标名次为最后一名,则基于所述待插入榜单中名次最低的已插入成员的最低排名值、第二参考端值及所述预设增量,生成所述第一排名值。
本步骤中,该最低排名值指的是名次最低的已插入成员的排名值,该第二参考端值是两个端值中与最低排名值的差值最小的端值。具体的,若已插入成员的名次与已插入成员的排名值成反比,即,排名值越低,名次越高,那么第二参考端值可以为第一最大端值,相应地,生成第一排名值时,可以先计算最低排名值与该预设增量的和值,然后将该和值与第一最大端值中的最小值确定为该第一排名值。示例的,以score_low表示最低排名值,那么第一排名值score1=min(Smax,score_low+step)。进一步地,若已插入成员的名次与已插入成员的排名值成正比,即,排名值越高,名次越高,那么该第二参考端值可以为第一最小端值,相应地,生成第一排名值时,可以先计算最低排名值与该预设增量的差值,然后将该差值与第一最小端值中的最大值确定为该第一排名值。示例的,第一排名值可以为score1=max(Smin,score_low-step)。
由于最低排名值和第二参考端值之间的差距往往会比较小,因此,需要将第一待插入成员作为第一名插入该待插入榜单时,如果从该最低排名值与该第二参考端值之间选择一个值作为第一排名值,例如,将两者的平均值作为第一排名值的话,会导致第一待插入成员的排名值与该第二参考端值之间的差距损失更多,因此,可以按照预设增量,有规律的对名次最低的已插入成员的排名值进行修改,进而可以较大程度的利用最低排名值与该第二参考端值之间的差距,增大从该差距中所能选取的值的数量,进而增大在第一预设范围内能插入的成员数,提高榜单的容纳量。
子步骤(4):若所述第一目标名次不为第一名且不为最后一名,则获取所述待插入榜单中与所述第一目标名次相同的已插入成员的排名值,得到第一参考排名值,以及,获取名次仅高于所述第一目标名次的已插入成员的排名值,得到第二参考排名值;基于所述第一参考排名值及所述第二参考排名值,生成所述第一排名值;所述第一排名值位于所述第一参考排名值及所述第二参考排名值之间。
本步骤中,可以是利用预设的查找语句,从该待插入榜单对应的预设数据库中获取第一参考排名值以及第二参考排名值。示例的,假设待插入榜单中的成员以member表示,第一目标名次为A,那么可以通过下述语句实现查找待插入榜单中目前名次为A的已插入成员的第一参考排名值,以及名次为A-1的已插入成员的第二参考排名值:
select member,score from table order by score limit A-1,2;
进一步地,基于第一参考排名值及第二参考排名值,生成第一排名值时,可以是从第一参考排名值与第二参考排名值之间的值中,任选一个值作为第一排名值,也可以是计算第一参考排名值及第二参考排名值的平均值作为第一排名值。示例的,以score.a表示第一参考排名值,以score.b表示第二参考排名值,那么可以确定第一排名值score1=(score.a+score.b)/2。本步骤中,通过为第一待插入成员设置一个处于第一参考排名值与第二参考排名值之间的值,作为第一排名值,进而可以确保后续步骤中插入后的第一待插入成员能够位于对应的第一目标名次,进而确保插入的准确性。
进一步地,在确定第一待插入成员的至少一个相邻排名值时,若待插入榜单中的已插入成员为0,即,当前的待插入榜单中还不存在成员,则可以将两个端值中的至少一个端值,作为至少一个相邻排名值。具体的,在当前的待插入榜单中还不存在成员时,若将第一待插入成员按照第一排名值插入待插入榜单中,那么与该第一排名值前后相邻的值即为第一预设范围定义的两个端值,因此,在这种情况下,可以将两个端值中的至少一个端值,作为至少一个相邻排名值。示例的,可以仅将第一最小端值作为相邻排名值,或者,仅将第一最大端值作为相邻排名值,又或者将第一最小端值及第一最大端值均作为相邻排名值,本发明实施例对此不作限定。本发明实施例中,在当前的待插入榜单中还不存在成员的情况下,将第一预设取值范围定义的两个端值作为相邻排名值,可以确保能够获取到相邻排名值,确保方案能够完整执行。
相应地,在若待插入榜单中的已插入成员不为0,即当前的待插入榜单中还不存在成员,则可以按照第一目标名次通过下述子步骤(5)~子步骤(7)实现确定相邻排名值:
子步骤(5):在所述第一目标名次为第一名的情况下,将所述待插入榜单中名次最高的已插入成员的最高排名值和/或第一参考端值,作为至少一个所述相邻排名值。
具体的,该最高排名值指的是名次最高的已插入成员的排名值,该第一参考端值可以是第一预设范围定义的两个端值中与该最高排名值的差值最小的端值。具体的,若已插入成员的名次与已插入成员的排名值成反比,即,排名值越低,名次越高,那么第一参考端值可以为第一最小端值。若已插入成员的名次与已插入成员的排名值成正比,即,排名值越高,名次越高,那么该第一参考端值可以为第一最大端值。相应地,可以仅将最高排名值作为相邻排名值,或者,仅将第一参考端值作为相邻排名值,又或者将最高排名值及第一参考端值均作为相邻排名值,本发明实施例对此不作限定。
子步骤(6):在所述第一目标名次为最后一名的情况下,将所述待插入榜单中名次最低的已插入成员的最低排名值和/或第二参考端值,作为至少一个所述相邻排名值。
本步骤中,该最低排名值指的是名次最低的已插入成员的排名值,该第二参考端值是两个端值中与最低排名值的差值最小的端值。具体的,若已插入成员的名次与已插入成员的排名值成反比,即,排名值越低,名次越高,那么第二参考端值可以为第一最大端值。若已插入成员的名次与已插入成员的排名值成正比,即,排名值越高,名次越高,那么该第二参考端值可以为第一最小端值。相应地,可以仅将最低排名值作为相邻排名值,或者,仅将第二参考端值作为相邻排名值,又或者将最低排名值及第二参考端值均作为相邻排名值,本发明实施例对此不作限定。
子步骤(7):在所述第一目标名次不为第一名且不为最后一名的情况下,将与所述第一目标名次相同的已插入成员的排名值和/或名次仅高于所述第一目标名次的已插入成员的排名值,作为至少一个所述相邻排名值。
本步骤中,获取与第一目标名次相同的已插入成员的排名值,以及获取名次仅高于第一目标名次的已插入成员的排名值的具体方式,可以参照前述子步骤,本发明实施例在此不做限定。
进一步地,本发明实施例中,相邻排名值的个数可以为2,相应地,在确定至少一个相邻排名值时,若待插入榜单中的已插入成员为0,那么可以将两个端值均作为相邻排名值;若待插入榜单中的已插入成员不为0,那么可以在第一目标名次为第一名的情况下,将最高排名值及第一参考端值均作为相邻排名值;在第一目标名次为最后一名的情况下,将最低排名值及第二参考端值均作为相邻排名值;在第一目标名次不为第一名且不为最后一名的情况下,将与第一目标名次相同的已插入成员的排名值及名次仅高于第一目标名次的已插入成员的排名值均作为相邻排名值。这样,可以更全面的确定出相邻排名值,相较于仅选取一个作为相邻排名值的方式,可以避免由于遗漏了部分相邻排名值,导致在需要进行调整操作时未及时进行调整的问题,进而可以更大程度的避免由于待插入榜单中排名值过于密集导致无法插入的问题。
步骤202、若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
本步骤中,可以按照排名值由高至低的次序,依次对每个已插入成员分别执行以下子步骤(8)~子步骤(9)的操作,进而实现对每个已插入成员的排名值进行调整操作:
子步骤(8):计算第二预设取值范围中定义的第二最大端值与预设增量的差值,得到更新后的所述第二最大端值。
本步骤中,待插入榜单中每个已插入成员的排名值可以均位于第一预设取值范围内,该第二预设取值范围可以是从最大可选数值范围中预先选取的,该第二预设取值范围可以与第一预设取值范围不重合。示例的,假设最大可选数值范围可以(0,264-1),第一预设取值范围为(0,232-1),那么第二预设取值范围可以从剩下的取值范围:(232,264-1)中选取。
若第二预设取值范围与第一预设取值范围存在重合部分,那么在对排名值位于第一预设取值范围内的已插入成员进行调整过程中,对于位于两者重合部分的排名值可能会出现调整错误的情况,进而导致调整操作失败。因此,本发明实施例中,通过预先设定第二预设取值范围与第一预设取值范围不重合,可以避免由于第二预设取值范围与第一预设取值范围存在重合部分,而导致的调整错误,进而确保调整操作的能够顺利进行。
进一步地,在选取时,可以将从该剩下的取值范围的中间区域选择第二预设取值范围,示例的,以max表示最大可选数值范围的最大端值,Nmin表示第二预设取值范围的第二最小端值,Nmax表示第二预设取值范围的第二最大端值,那么可以设置Nmin=Smax+(max-Smax–count*step)/2,设置Nmax=Nmin+count*step,进而确保设置的第二预设取值范围位于剩下的取值范围的中间区域。其中,count表示当前的已插入成员的个数。本步骤中,通过预先从该剩下的取值范围的中间区域选择第二预设取值范围,可以使调整后的已插入成员的排名值均位于该剩下的中间区域,为剩下的取值范围的两端留下可操作空间,进而可以确保调整之后还能有空间插入其他成员,避免由于执行了调整操作对后续的插入操作造成影响。
子步骤(9):将更新后的所述第二最大端值确定为所述已插入成员的排名值。
示例的,以已插入成员的排名值与名次成反比,Nmax等于40,step等于1为例,假设已插入成员的名次及其排名值如下表1所示:
表1
在这种情况下,进行调整时,可以从排名值最大的Member 6开始,将Member 6对应的排名值调整为:Nmax=Nmax–step=40-1=39,接着,可以将Member 5对应的排名值调整为:Nmax=Nmax–step=39-1=38,……,以此类推,最后,将Member 1对应的排名值调整为:Nmax=Nmax–step=35-1=34。可以看出,调整之后从Member 1到Member 6,每个已插入成员的排名值依次均匀的增大,进而可以确保从Member 1到Member 6,名次和调整之前一样,依次降低。本步骤中的调整方式,可以确保调整之后每个已插入成员的排名值之间的大小关系均没有发生改变,因此,可以确保调整之后的每个已插入成员的名次不会被改变,进而可以确保调整之后榜单的准确性。
示例的,以已插入成员的排名值与名次成正比,Nmax等于40,step等于1为例,假设已插入成员的名次及其排名值如下表2所示:
已插入成员 | 名次 | 排名值 |
Member 1 | 1 | 12 |
Member 2 | 2 | 10 |
Member 3 | 3 | 8 |
Member 4 | 4 | 6 |
Member 5 | 5 | 4 |
Member 6 | 6 | 2 |
表2
在这种情况下,进行调整时,可以从排名值最大的Member1开始,将Member 1对应的排名值调整为:Nmax=Nmax–step=40-1=39,接着,可以将Member 2对应的排名值调整为:Nmax=Nmax–step=39-1=38,……,以此类推,最后,将Member 6对应的排名值调整为:Nmax=Nmax–step=35-1=34。可以看出,调整之后从Member 1到Member 6,每个已插入成员的排名值依次均匀的减小,进而可以确保从Member 1到Member 6,名次和调整之前一样,依次降低。本步骤中的调整方式,可以调整之后每个已插入成员的排名值之间的大小关系均没有发生改变,因此,可以确保调整之后的每个已插入成员的名次不会被改变,进而可以确保调整之后榜单的准确性。
进一步地,图2-2是本发明实施例提供一种插入过程示意图,如图2-2所示,矩形框中的每个横线表示一个已插入成员的排名值,左边矩形框表示的是插入了5个已插入成员时排名值的分布情况,右边矩形框表示的是插入了10个已插入成员时排名值的分布情况,可以看出,随着成员的不断插入,排名值之间变得越来越密集。又进一步地,图2-3是本发明实施例提供一种调整过程示意图,如图2-3所示,矩阵框中的每个实线表示一个已插入成员的排名值,每个虚线表示调整后的排名值,可以看出随着调整操作的不断进行,转换为虚线的实线越来越多,最后,所有的实线均转换为虚线,即,整个调整操作完成。
进一步地,本发明实施例中,还可以在执行调整操作的过程中,执行下述步骤A~步骤C:
步骤A、若在执行所述调整操作的过程中接收到第二待插入成员的插入请求,则停止所述调整操作。
本步骤中,该第二待插入成员可以是在执行调整操作的过程中,需要插入待插入榜单的成员,该插入请求可以是用户向执行该方法的设备发送的。进一步地,由于榜单生成的过程往往是动态的,即,随时可能会有需要插入的成员,为了确保执行调整操作时,不会阻碍插入成员的操作,进而确保整个插入成员的操作能够顺利进行,本发明实施例中,如果在执行该调整操作的过程中接收到第二待插入成员的插入请求的情况下,停止该调整操作,以便于能够执行对该第二待插入成员的插入操作,同时,还可以避免两个操作产生冲突,进而引发故障的问题。
示例的,如果在执行完对第3个已插入成员的排名值的调整之后,接收到该插入请求,则可以停止对下一个已插入成员的排名值的调整操作。
步骤B、基于当前的所述待插入榜单中的所述已插入成员及所述第二待插入成员的第二目标名次,将所述第二待插入成员插入所述待插入榜单。
具体的,将第二待插入成员插入待插入榜单的操作可以通过下述子步骤(10)~子步骤(13)实现:
子步骤(10):若所述已插入成员的排名值与名次成反比,则确定名次与所述第二目标名次相同的已插入成员的排名值,是否处于目标取值范围;或者,若所述已插入成员的排名值与名次成反比,则确定名次仅高于所述第二目标名次的已插入成员的排名值,是否处于目标取值范围。
本步骤中,该目标取值范围指的是第一预设取值范围定义的第一最大端值及当前的第二最大端值构成的范围。示例的,该目标取值范围可以是(Smax,Nmax)。
进一步地,在已插入成员的排名值与名次成反比的情况下,可以以名次与第二目标名次相同的已插入成员作为参照,确定该已插入成员的排名值是否处于该目标取值范围中,在已插入成员的排名值与名次成正比的情况下,可以以名次仅高于第二目标名次的已插入成员作为参照,确定该已插入成员的排名值是否处于该目标取值范围中。
子步骤(11):若处于所述目标取值范围,则将当前的所述第一最大端值与所述预设增量的差值作为更新后的所述第一最大端值。
具体的,计算更新后的第一最大端值的实现方式可以参照前述步骤,本发明实施例在此不做赘述。
子步骤(12):将更新后的所述第一最大端值确定为所述第二待插入成员的排名值。
本步骤中,如果处于该目标取值范围,则说明将该第二待插入成员插入当前的待插入榜单之后,该第二待插入成员的排名值是下一个要调整至第二预设取值范围内的排名值,因此,通过将更新后的第一最大端值确定为第二待插入成员的排名值,可以使得基于该排名值能够直接被插入至第二预设取值范围,这样,就无需在插入之后,再将该排名值调整至第二预设取值范围,进而一定程度上可以降低调整操作所需调整的排名值数量,进而可以提高调整效率。
需要说明的是,如果不处于该目标取值范围,则可以认为该第二待插入成员的排名值不是下一个要调整至第二预设取值范围内的排名值,此时,可以直接按照前述步骤中计算排名值的方式,生成该第二待插入成员的排名值。
子步骤(13):基于所述第二待插入成员的排名值,将所述第二待插入成员插入所述待插入榜单。
本发明实施例中,可以将第二待插入成员作为键,以第二待插入成员的排名值作为该键的值,以键值对的形式将两者存储至预设数据库中,进而实现将第二待插入成员插入待插入榜单。其中,该预设数据库可以是用于实现该待插入榜单的数据库,该预设数据库可以是redis数据库,该插入操作可以是基于redis数据库支持的zset命令实现的。
步骤C、在将所述第二待插入成员插入所述待插入榜单之后,继续执行所述调整操作。
示例的,假设在对第三个已插入成员的排名值进行调整之后,接收到了插入请求,此时,可以在对该插入请求对应的第二待插入请求执行完插入操作之后,继续对下一个已插入成员的排名值进行调整。
步骤203、基于调整后的所述待插入榜单中的所述已插入成员及所述第二目标名次,确定所述第一待插入成员的第二排名值。
由于对待插入榜单中的已插入成员的排名值进行了调整,此时,如果直接基于前述步骤中确定的第一排名值执行插入操作,可能会出现最终呈现的名次与第一目标名次不相匹配的情况,因此,本步骤中,可以基于调整后的待插入榜单中的已插入成员及第一目标名次,重新确定第一待插入成员的第二排名值,以确保后续步骤中基于该第二排名值执行插入操作时,能使第一待插入成员以第一目标名次被呈现,进而确保插入操作的准确率。
步骤204、基于所述第二排名值,将所述第一待插入成员插入所述待插入榜单。
具体的,基于第二排名值将第一待插入成员插入待插入榜单的实现过程可以参照前述子步骤(13),本发明实施例在此不做赘述。
需要说明的是,在本发明的另一可选实施例中,还可以在对第一待插入成员的相邻排名值进行调整之后,就执行确定第一待插入成员的第二排序值,并基于第二排序值对该第一待插入成员执行插入操作,进而可以使得基于该排名值能够直接被插入至第二预设取值范围,这样,就无需在插入之后,再将该排名值调整至第二预设取值范围,进而一定程度上可以降低调整操作所需调整的排名值数量,进而可以提高调整效率。
进一步地,本发明实施例中,任一成员的排名值可以是整型的数值,具体的,如果采用浮点类型的数值作为排名值,随着插入操作的进行,可能会出现某些成员的排名值中出现小数,而电子设备内部是采用二进制对数据进行表示的,受限与二进制的表示形式,二进制表示小数时可能会存在误差。这样,就会导致排名值决定的名次错乱,进而造成排名不准确的问题,因此,本发明实施例中,通过采用整型的数值作为成员的排名值,进而可以避免出现名词错乱的问题,确保排名的准确性。进一步地,任一成员的排名值还可以是使用字符串形式表示的,这样,对于需要插入大量成员的榜单,可以确保能够为大量的成员提供排名值。相应地,在针对排名值进行的计算,可以基于大数运算实现。其中,大数运算是一种利用数组连续性,将大数每一位上的数字单独取出放入对应的数组格中,然后再对每一位做单独的加减乘运算的方式,进而可以实现针对较大数值的数进行的一系列的运算。
在完成调整操作之后,往往还会有新的待插入成员需要插入该待插入榜单,而随着新的待插入成员不断插入至该待插入榜单中,可能会重新出现过于密集,无法继续插入的问题,因此,本发明实施例中,还可以在完成对所有已插入成员的排名值的调整操作之后,将第一预设取值范围作为第二预设取值范围,即,将原来的Smin设置为Nmin,将原来的Smax设置为Nmax,接着,可以将最大可选取值范围中除第二预设取值范围之外的取值范围,确定为第一预设取值范围,即,将原来的Smax+1设置为Smin,max设置为Smax。这样,可以最大程度的为后续新的待插入成员提供可插入空间,确保能够基于转换后第一预设取值继续插入新的待插入成员,同时,还可以在转换后的第一预设取值范围变得过于密集时,基于转换后的第二预设取值范围重新进行调整操作,进而更大程度的提高榜单的容纳量。
进一步地,本发明实施例中,每个已插入成员之间相互独立,在需要插入待插入成员时,仅需查找前后相邻的已插入成员的排名值,可以将查找复杂度控制为O(log(N)),使得方案实现过程中能够快速查找到所需查找的成员。同时,插入待插入成员之后,也无需更新其他已插入成员的排名值,因此,可以将更新复杂度控制为O(1),使得方案实现过程中能够快速实现更新。
综上所述,本发明实施例提供的榜单处理方法,可以基于待插入榜单中的已插入成员及第一待插入成员的目标名次,确定第一待插入成员的第一排名值,以及确定第一待插入成员的至少一个相邻排名值,接着,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布,在进行调整操作的过程中,如果有需要插入的成员,会先中止调整操作,在完成对该成员的插入操作之后,再继续执行调整操作,进而避免操作冲突,接着,在完成整个调整操作之后,会再基于调整后的待插入榜单中的已插入成员及目标名次,重新确定第一待插入成员的第二排名值,最后,基于第二排名值,将第一待插入成员插入所述待插入榜单。这样,通过在第一排名值与任一相邻排名值的差值不大于预设阈值,即,插入该第一待插入成员之后,可能会导致待插入榜单中成员的排名值过于密集,无法继续插入其他成员的情况下,先对每个已插入成员的排名值进行调整,以降低榜单中排名值的密集程度,进而一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保能够顺利插入第一待插入成员,提高榜单生成的效果。
图3是本发明实施例提供的一种榜单处理装置的框图,如图3所示,该装置30可以包括:
第一确定模块301,用于基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值。
调整模块302,用于若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
综上所述,本发明实施例提供的榜单处理装置,可以基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定第一待插入成员的第一排名值,以及确定第一待插入成员的至少一个相邻排名值,接着,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布。这样,通过在第一排名值与任一相邻排名值的差值不大于预设阈值,即,插入该第一待插入成员之后,可能会导致待插入榜单中成员的排名值过于密集,无法继续插入其他成员的情况下,先对每个已插入成员的排名值进行调整,以降低榜单中排名值的密集程度,进而一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保后续操作中能够顺利插入第一待插入成员,提高榜单生成的效果。
图4是本发明实施例提供的另一种榜单处理装置的框图,如图4所示,该装置40可以包括:
第一确定模块401,用于基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值。
调整模块402,用于若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
可选的,所述装置40还包括:
第二确定模块403,用于基于调整后的所述待插入榜单中的所述已插入成员及所述第一目标名次,确定所述第一待插入成员的第二排名值。
第一插入模块404,用于基于所述第二排名值,将所述第一待插入成员插入所述待插入榜单。
可选的,所述第一确定模块401,具体用于:
若所述待插入榜单中的已插入成员为0,则基于第一预设取值范围定义的两个端值,生成所述第一排名值;所述第一排名值位于所述第一预设取值范围内。
或者,若所述待插入榜单中的已插入成员不为0,则根据所述第一目标名次,生成所述第一排名值。
可选的,所述第一确定模块401,还具体用于:
若所述第一目标名次为第一名,则基于名次最高的已插入成员的最高排名值、第一参考端值及预设增量,生成所述第一排名值;所述第一参考端值是所述两个端值中与所述最高排名值的差值最小的端值。
或者,若所述第一目标名次为最后一名,则基于名次最低的已插入成员的最低排名值、第二参考端值及所述预设增量,生成所述第一排名值;所述第二参考端值是所述两个端值中与所述最低排名值的差值最小的端值。
或者,若所述第一目标名次不为第一名且不为最后一名,则获取所述与所述第一目标名次相同的已插入成员的排名值,得到第一参考排名值,以及,获取名次仅高于所述第一目标名次的已插入成员的排名值,得到第二参考排名值;基于所述第一参考排名值及所述第二参考排名值,生成所述第一排名值;其中,所述第一排名值位于所述第一参考排名值及所述第二参考排名值之间。
可选的,所述第一确定模块401,具体用于:
若所述待插入榜单中的已插入成员为0,则将所述两个端值中的至少一个端值,作为至少一个所述相邻排名值。
或者,若所述待插入榜单中的已插入成员不为0,则在所述第一目标名次为第一名的情况下,将名次最高的已插入成员的最高排名值和/或第一参考端值,作为至少一个所述相邻排名值。
在所述第一目标名次为最后一名的情况下,将名次最低的已插入成员的最低排名值和/或第二参考端值,作为至少一个所述相邻排名值。
在所述第一目标名次不为第一名且不为最后一名的情况下,将与所述第一目标名次相同的已插入成员的排名值和/或名次仅高于所述第一目标名次的已插入成员的排名值,作为至少一个所述相邻排名值。
其中,所述第一参考端值是所述两个端值中与所述最高排名值的差值最小的端值;所述第二参考端值是所述两个端值中与所述最低排名值的差值最小的端值。
可选的,所述已插入成员的排名值均位于第一预设取值范围。
所述调整模块402,具体用于:
按照排名值由高至低的次序,依次对每个所述已插入成员分别执行以下操作:
计算第二预设取值范围中定义的第二最大端值与预设增量的差值,得到更新后的所述第二最大端值。
将更新后的所述第二最大端值确定为所述已插入成员的排名值。
可选的,所述装置40还包括:
停止模块,用于若在执行所述调整操作的过程中接收到第二待插入成员的插入请求,则停止所述调整操作。
第二插入模块,用于基于当前的所述待插入榜单中的已插入成员及所述第二待插入成员的第二目标名次,将所述第二待插入成员插入所述待插入榜单。
执行模块,用于在将所述第二待插入成员插入所述待插入榜单之后,继续执行所述调整操作。
可选的,所述第二插入模块,具体用于:
若所述已插入成员的排名值与名次成反比,则确定名次与所述第二目标名次相同的已插入成员的排名值,是否处于目标取值范围;或者,若所述已插入成员的排名值与名次成正比,则确定名次仅高于所述第二目标名次的已插入成员的排名值,是否处于目标取值范围。
若处于所述目标取值范围,则将当前的所述第二最大端值与所述预设增量的差值作为更新后的所述第二最大端值,并将更新后的所述第二最大端值确定为所述第二待插入成员的排名值。
基于所述第二待插入成员的排名值,将所述第二待插入成员插入所述待插入榜单。
其中,所述目标取值范围是所述第一预设取值范围定义的第一最大端值及当前的所述第二最大端值构成的。
可选的,所述排名值是整型的数值。
所述第一预设取值范围及所述第二预设取值范围均位于最大可选取值范围,所述第一预设取值范围与所述第二预设取值范围不重合。
可选的,所述装置40还包括:
第三确定模块,用于将所述第一预设取值范围作为所述第二预设取值范围。
第四确定模块,用于将所述最大可选取值范围中除所述第二预设取值范围之外的取值范围,确定为所述第一预设取值范围。
综上所述,本发明实施例提供的榜单处理装置,可以基于待插入榜单中的已插入成员及第一待插入成员的目标名次,确定第一待插入成员的第一排名值,以及确定第一待插入成员的至少一个相邻排名值,接着,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布,在进行调整操作的过程中,如果有需要插入的成员,会先中止调整操作,在完成对该成员的插入操作之后,再继续执行调整操作,进而避免操作冲突,接着,在完成整个调整操作之后,会再基于调整后的待插入榜单中的已插入成员及目标名次,重新确定第一待插入成员的第二排名值,最后,基于第二排名值,将第一待插入成员插入所述待插入榜单。这样,通过在第一排名值与任一相邻排名值的差值不大于预设阈值,即,插入该第一待插入成员之后,可能会导致待插入榜单中成员的排名值过于密集,无法继续插入其他成员的情况下,先对每个已插入成员的排名值进行调整,以降低榜单中排名值的密集程度,进而一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保能够顺利插入第一待插入成员,提高榜单生成的效果。
对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图5为实现本发明各个实施例的一种终端的硬件结构示意图,如图5所示,该终端500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器510,用于基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值。
处理器510,用于若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
本发明实施例中,终端可以基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定第一待插入成员的第一排名值,以及确定第一待插入成员的至少一个相邻排名值,接着,若第一排名值与任一相邻排名值的差值不大于预设阈值,则依次对待插入榜单中每个已插入成员的排名值进行调整操作,以使每个已插入成员的排名值按照每个已插入成员的名次均匀分布。这样,通过在第一排名值与任一相邻排名值的差值不大于预设阈值,即,插入该第一待插入成员之后,可能会导致待插入榜单中成员的排名值过于密集,无法继续插入其他成员的情况下,先对每个已插入成员的排名值进行调整,以降低榜单中排名值的密集程度,进而一定程度上可以降低由于排名值过于密集,导致无法继续插入成员的问题,进而确保后续操作中能够顺利插入第一待插入成员,提高榜单生成的效果。
应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。
终端通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与终端500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。
输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(Graphics Processing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元105上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克风5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。
终端500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在终端500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板5061。
用户输入单元507可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。虽然在图5中,触控面板5071与显示面板5061是作为两个独立的部件来实现终端的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现终端的输入和输出功能,具体此处不做限定。
接口单元508为外部装置与终端500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端500内的一个或多个元件或者可以用于在终端500和外部装置之间传输数据。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器510是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器510可包括一个或多个处理单元;优选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
终端500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,终端500包括一些未示出的功能模块,在此不再赘述。
可选的,本发明实施例还提供一种终端,包括处理器510,存储器509,存储在存储器509上并可在所述处理器510上运行的计算机程序,该计算机程序被处理器510执行时实现上述榜单处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
可选的,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述榜单处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (12)
1.一种榜单处理方法,所述方法应用于终端,其特征在于,所述方法包括:
基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值;
若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
2.根据权利要求1所述的方法,其特征在于,在完成所述调整操作之后,或者,完成对所述相邻排名值的调整之后,所述方法还包括:
基于调整后的所述待插入榜单中的所述已插入成员及所述第一目标名次,确定所述第一待插入成员的第二排名值;
基于所述第二排名值,将所述第一待插入成员插入所述待插入榜单。
3.根据权利要求1所述的方法,其特征在于,所述确定所述第一待插入成员的第一排名值,包括:
若所述待插入榜单中的已插入成员为0,则基于第一预设取值范围定义的两个端值,生成所述第一排名值;所述第一排名值位于所述第一预设取值范围内;或者,
若所述待插入榜单中的已插入成员不为0,则根据所述第一目标名次,生成所述第一排名值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一目标名次,生成所述第一排名值,包括:
若所述第一目标名次为第一名,则基于名次最高的已插入成员的最高排名值、第一参考端值及预设增量,生成所述第一排名值;所述第一参考端值是所述两个端值中与所述最高排名值的差值最小的端值;
或者,若所述第一目标名次为最后一名,则基于名次最低的已插入成员的最低排名值、第二参考端值及所述预设增量,生成所述第一排名值;所述第二参考端值是所述两个端值中与所述最低排名值的差值最小的端值;
或者,若所述第一目标名次不为第一名且不为最后一名,则获取与所述第一目标名次相同的已插入成员的排名值,得到第一参考排名值,以及,获取名次仅高于所述第一目标名次的已插入成员的排名值,得到第二参考排名值;基于所述第一参考排名值及所述第二参考排名值,生成所述第一排名值;其中,所述第一排名值位于所述第一参考排名值及所述第二参考排名值之间。
5.根据权利要求3所述的方法,其特征在于,所述确定所述第一待插入成员的至少一个相邻排名值,包括:
若所述待插入榜单中的已插入成员为0,则将所述两个端值中的至少一个端值,作为至少一个所述相邻排名值;或者,
若所述待插入榜单中的已插入成员不为0,则在所述第一目标名次为第一名的情况下,将名次最高的已插入成员的最高排名值和/或第一参考端值,作为至少一个所述相邻排名值;
在所述第一目标名次为最后一名的情况下,将名次最低的已插入成员的最低排名值和/或第二参考端值,作为至少一个所述相邻排名值;
在所述第一目标名次不为第一名且不为最后一名的情况下,将与所述第一目标名次相同的已插入成员的排名值和/或名次仅高于所述第一目标名次的已插入成员的排名值,作为至少一个所述相邻排名值;
其中,所述第一参考端值是所述两个端值中与所述最高排名值的差值最小的端值;所述第二参考端值是所述两个端值中与所述最低排名值的差值最小的端值。
6.根据权利要求1所述的方法,其特征在于,所述已插入成员的排名值均位于第一预设取值范围;
所述依次对所述待插入榜单中每个已插入成员的排名值进行调整,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布,包括:
按照排名值由高至低的次序,依次对每个所述已插入成员分别执行以下操作:
计算第二预设取值范围中定义的第二最大端值与预设增量的差值,得到更新后的所述第二最大端值;
将更新后的所述第二最大端值确定为所述已插入成员的排名值。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若在执行所述调整操作的过程中接收到第二待插入成员的插入请求,则停止所述调整操作;
基于当前的所述待插入榜单中的已插入成员及所述第二待插入成员的第二目标名次,将所述第二待插入成员插入所述待插入榜单;
在将所述第二待插入成员插入所述待插入榜单之后,继续执行所述调整操作。
8.根据权利要求7所述的方法,其特征在于,所述基于当前的所述待插入榜单中的已插入成员及所述第二待插入成员的第二目标名次,将所述第二待插入成员插入所述待插入榜单,包括:
若所述已插入成员的排名值与名次成反比,则确定名次与所述第二目标名次相同的已插入成员的排名值,是否处于目标取值范围;或者,若所述已插入成员的排名值与名次成正比,则确定名次仅高于所述第二目标名次的已插入成员的排名值,是否处于目标取值范围;
若处于所述目标取值范围,则将当前的所述第二最大端值与所述预设增量的差值作为更新后的所述第二最大端值,并将更新后的所述第二最大端值确定为所述第二待插入成员的排名值;
基于所述第二待插入成员的排名值,将所述第二待插入成员插入所述待插入榜单;
其中,所述目标取值范围是所述第一预设取值范围定义的第一最大端值及当前的所述第二最大端值构成的。
9.根据权利要求6至8任一所述的方法,其特征在于,所述排名值是整型的数值;
所述第一预设取值范围及所述第二预设取值范围均位于最大可选取值范围,所述第一预设取值范围与所述第二预设取值范围不重合。
10.根据权利要求9所述的方法,其特征在于,所述依次对所述待插入榜单中每个已插入成员的排名值进行调整操作之后,所述方法还包括:
将所述第一预设取值范围作为所述第二预设取值范围;
将所述最大可选取值范围中除所述第二预设取值范围之外的取值范围,确定为所述第一预设取值范围。
11.一种榜单处理装置,所述装置应用于终端,其特征在于,所述装置包括:
第一确定模块,用于基于待插入榜单中的已插入成员及第一待插入成员的第一目标名次,确定所述第一待插入成员的第一排名值,以及,确定所述第一待插入成员的至少一个相邻排名值;
调整模块,用于若所述第一排名值与任一所述相邻排名值的差值不大于预设阈值,则依次对所述待插入榜单中每个已插入成员的排名值进行调整操作,以使每个所述已插入成员的排名值按照每个所述已插入成员的名次均匀分布。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10任一所述的榜单处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911423275.5A CN111192027B (zh) | 2019-12-31 | 2019-12-31 | 榜单处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911423275.5A CN111192027B (zh) | 2019-12-31 | 2019-12-31 | 榜单处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111192027A CN111192027A (zh) | 2020-05-22 |
CN111192027B true CN111192027B (zh) | 2023-07-18 |
Family
ID=70709678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911423275.5A Active CN111192027B (zh) | 2019-12-31 | 2019-12-31 | 榜单处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111192027B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493407B (zh) * | 2023-12-25 | 2024-05-17 | 江西五十铃汽车有限公司 | 一种排名自动上下调整方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095923A (zh) * | 2016-06-12 | 2016-11-09 | 微梦创科网络科技(中国)有限公司 | 一种在有序榜单中添加上榜数据的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8784214B2 (en) * | 2011-07-05 | 2014-07-22 | Sony Computer Entertainment Inc. | Method and system for establishing location-based leaderboard |
CN109582902B (zh) * | 2018-11-20 | 2022-02-11 | 广州虎牙信息科技有限公司 | 排序信息的确定方法、榜单展示方法及计算机设备 |
-
2019
- 2019-12-31 CN CN201911423275.5A patent/CN111192027B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095923A (zh) * | 2016-06-12 | 2016-11-09 | 微梦创科网络科技(中国)有限公司 | 一种在有序榜单中添加上榜数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111192027A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196667B (zh) | 一种通知消息的处理方法及终端 | |
US20220278950A1 (en) | Information display method, information sending method, and electronic device | |
US20220004357A1 (en) | Audio signal outputting method and terminal device | |
CN108984066B (zh) | 一种应用程序图标显示方法及移动终端 | |
US11895069B2 (en) | Message sending method and mobile terminal | |
CN110442281B (zh) | 一种应用图标显示方法和终端 | |
CN108920040B (zh) | 一种应用图标整理方法及移动终端 | |
CN111399819B (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN110780751B (zh) | 一种信息处理方法及电子设备 | |
CN109902092B (zh) | 一种数据存储系统的操作方法、装置和移动终端 | |
CN108628534B (zh) | 一种字符展示方法及移动终端 | |
CN108879856B (zh) | 一种充电方法及终端 | |
CN108462794B (zh) | 一种信息显示方法及移动终端 | |
CN111192027B (zh) | 榜单处理方法、装置及计算机可读存储介质 | |
CN110740265B (zh) | 图像处理方法及终端设备 | |
CN109274814B (zh) | 一种消息提示方法、装置及终端设备 | |
CN109144860B (zh) | 一种对控件对象的操作方法及终端设备 | |
CN110888572A (zh) | 一种消息显示方法及终端设备 | |
CN111142759A (zh) | 信息的发送方法及电子设备 | |
CN110851219A (zh) | 一种信息处理方法及电子设备 | |
CN111142998A (zh) | 后台应用的分享方法及电子设备 | |
CN111666421B (zh) | 数据处理方法、装置及电子设备 | |
CN110209333B (zh) | 一种页面控制方法及移动终端 | |
CN110442361B (zh) | 一种灰度发布方法、装置及电子设备 | |
CN108491225B (zh) | 一种更新包生成方法及移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231005 Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 511400 floor 5-13, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |