一种用户排名获得方法、装置及服务器的制造方法

文档序号:9750995阅读:161来源:国知局
一种用户排名获得方法、装置及服务器的制造方法
【技术领域】
[0001]本发明涉及计算机应用技术领域,特别是涉及一种用户排名获得方法、装置及服务器。
【背景技术】
[0002]目前,很多应用系统,例如:视频应用系统或购物应用系统等,需要对用户进行排名,使用户可以根据获得的排名兑换相应的礼品。
[0003]现有技术中,通过以下方式来获得用户排名:
[0004]首先,每个区域的服务器获得区域中每个用户的备份数据,也就是用户备份数据的备份/还原操作次数等信息。然后,基于每个用户的备份数据,确定每个用户的积分,保存每个用户及对应的积分。再根据保存的各个用户的积分,将所有用户的积分按多少顺序进行排序,将排序的结果作为各个用户在其所在区域的排名结果,并保存。当需要获得某用户的排名时,在排名结果中查找该用户,如果能够查找到该用户的排名,则将查找到的排名作为该用户在所在区域的排名。如果在排名结果中没有查找到该用户的排名,则重新将包括该用户的所有用户的积分按多少顺序进行排序,以获得该用户在所在区域的排名。
[0005]上述过程中,由于是通过对所有用户的积分进行排序而获得各个用户的排名,因此,对每个区域的服务器来说计算数据量大,系统资源占用较多。

【发明内容】

[0006]本发明实施例的目的在于提供一种用户排名获得方法、装置及服务器,以解决计算数据量大和系统资源占用较多的问题。具体技术方案如下:
[0007]本发明提供了一种用户排名获得方法,应用于每个区域的服务器,所述方法包括:
[0008]获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数;
[0009]遍历已建立的积分二叉树,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数;
[0010]查找保存了所述第一积分所在积分区间的每个目标子节点;
[0011 ]根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名。
[0012]可选的,所述获得当前用户的第一积分包括:
[0013]获得当前用户的备份数据;
[0014]根据所述获得的备份数据计算出当前用户的第一积分。
[0015]可选的,所述根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名,包括:
[0016]在所述积分二叉树的根节点的子节点中找到目标子节点,将找到的目标子节点确定为当前节点,判断当前节点是否为左子节点,如果是,则将右子节点包含的用户个数累加到所述排名基数上,将累加后得到的排名作为当前用户的排名,如果否,则将所述排名基数作为当前用户的排名,其中,每个非叶子节点有两个子节点,分别为左子节点和右子节点,所述左子节点为低分子节点,所述右子节点为高分子节点;
[0017]在当前节点的子节点中查找下一个目标子节点,将该找到的目标子节点确定为当前节点,判断当前节点是否为左子节点,如果是,则将右子节点包含的用户个数累加到所述当前用户的排名上,将累加后得到的排名作为当前用户的排名,如果否,则当前用户的排名不变,在当前节点的子节点中查找再下一个目标子节点,将该找到的再下一个目标子节点确定为当前节点,返回执行所述判断当前节点是否为左子节点的步骤;
[0018]在当前节点为叶子节点时,将当前用户的排名确定为用户在所在区域的排名。
[0019]可选的,所述积分二叉树的根节点保存的积分区间为:当前用户所在区域中的积分中的最小值与最大值组成的积分区间;所述积分二叉树的根节点保存的积分处于该积分区间内的用户个数为当前用户所在区域中的用户的总个数;每个节点包含的积分区间的长度为积分区间中的最大值与最小值的差,且叶子节点所包含的积分区间的长度为I。
[0020]可选的,所述方法还包括:
[0021]定时统计服务器所在区域内积分处于各个积分区间内的用户个数,并根据统计结果更新服务器所在区域的积分二叉树。
[0022]可选的,所述方法还包括:
[0023]将当前用户及第一积分发送给所有区域的各个服务器;
[0024]接收各个服务器根据所述第一积分计算出的所述当前用户在各个区域的排名;
[0025]将接收到的各个区域的排名累加;
[0026]将累加后的排名减一作为当前用户在所有区域中的总排名。
[0027]本发明提供了一种用户排名获得装置,应用于每个区域的服务器,所述装置包括:获得模块、遍历模块、查找模块和计算模块,
[0028]所述获得模块,用于获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数;
[0029]所述遍历模块,用于遍历已建立的积分二叉树,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数;
[0030]所述查找模块,用于查找保存了所述第一积分所在积分区间的每个目标子节点;
[0031]所述计算模块,用于根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名。
[0032]可选的,所述获得模块,包括:第一获得子模块和第一计算子模,
[0033]所述第一获得子模块,用于获得当前用户的备份数据;
[0034]所述第一计算子模块,用于根据所述获得的备份数据计算出当前用户的第一积分,所述当前用户的第一积分对应有一个排名基数。
[0035]可选的,所述计算模块,包括:第一确定子模块、第一判断子模块、第二确定子模块、第二判断子模块、第三确定子模块和确定子模块,
[0036]所述第一确定子模块,用于在所述积分二叉树的根节点的子节点中找到目标子节点,将找到的目标子节点确定为当前节点;
[0037]所述第一判断子模块,用于判断当前节点是否为左子节点,如果是,则触发第一排名子模块,如果否,则触发第二排名子模块,其中,每个非叶子节点有两个子节点,分别为左子节点和右子节点,所述左子节点为低分子节点,所述右子节点为高分子节点;
[0038]所述第二确定子模块,用于在当前节点的子节点中查找下一个目标子节点,将该找到的目标子节点确定为当前节点;
[0039]所述第二判断子模块,用于判断当前节点是否为左子节点,如果是,则触发第三排名子模块,如果否,则触发第四排名子模块;
[0040]所述第三确定子模块,用于在当前节点的子节点中查找再下一个目标子节点,将该找到的再下一个目标子节点确定为当前节点,触发第二判断子模块;
[0041]所述确定子模块,用于在当前节点为叶子节点时,将当前用户的排名确定为用户在所在区域的排名;
[0042]所述第一排名子模块,用于将右子节点包含的用户个数累加到所述排名基数上,将累加后得到的排名作为当前用户的排名;
[0043]所述第二排名子模块,用于将所述排名基数作为当前用户的排名;
[0044]所述第三排名子模块,用于将右子节点包含的用户个数累加到所述当前用户的排名上,将累加后得到的排名作为当前用户的排名;
[0045]所述第四排名子模块,用于当前用户的排名不变。
[0046]可选的,所述积分二叉树的根节点保存的积分区间为:当前用户所在区域中的积分中的最小值与最大值组成的积分区间;所述积分二叉树的根节点保存的积分处于该积分区间内的用户个数为当前用户所在区域中的用户的总个数;每个节点包含的积分区间的长度为积分区间中的最大值与最小值的差,且叶子节点所包含的积分区间的长度为I。
[0047]可选的,所述装置还包括:更新模块,
[0048]所述更新模块,用于定时统计服务器所在区域内积分处于各个积分区间内的用户个数,并根据统计结果更新服务器所在区域的积分二叉树。
[0049]可选的,所述装置还包括:发送模块、接收模块、累加模块和确定模块,
[0050]所述发送模块,用于将当前用户及第一积分发送给所有区域的各个服务器;
[0051]所述接收模块,用于接收各个服务器根据所述第一积分计算出的所述当前用户在各个区域的排名;
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1