zoukankan      html  css  js  c++  java
  • 游戏排行榜系统设计 -- 有感

    需求:
    1、玩家在点击穿/脱装备需要重新计算战斗力
    2、玩家可以查看自己的战斗力及排名
    3、战斗力前100名的玩家名称以及战斗力大小随时可以查询,且准确性100%
    4、为了准确性,任意两个玩家同时查看自己的战斗力时,战斗力高的玩家排名必须高
    5、玩家数量庞大,可能达到百万级别

    需求解析:
    1、战斗力就是个优先级
    2、优先级经常会变化
    3、每个玩家的排名都要可查
    4、前100名的查询频率很高
    5、排名不能太离谱,会很容易穿帮
    6、数据量较大

    一个节点的信息应该至少包含:
    1、玩家名称
    2、玩家ID(唯一)
    2、战斗力

    数据结构初选:
    1、平衡二叉树
    2、跳跃表
    3、红黑树

    对于数据结构的选型,都是为了维护节点有序的,这样可以轻易计算出排名,也要能保证插/删节点的效率。

    如果再增加一点难度,总玩家数量达到百亿级别,其中的在线用户是百万级别。这时就需要区分冷热数据了,对于那些离线的玩家,是没有查询需求的,除了前100名。

    这样的话,前100名的玩家数据要放在内存中,在线玩家的数据也要放在内存中,离线玩家的数据要存盘。待我再好好思考思考。

  • 相关阅读:
    css命名书写规范小结。
    不断学习,充实自己。
    【openGL】画正弦函数图像
    【openGL】画五角星
    【openGL】画圆
    【openGL】画直线
    【网络资料】Astar算法详解
    【Agorithm】一次一密加密解密算法
    【HTML5】 web上的音频
    【sicily】卡片游戏
  • 原文地址:https://www.cnblogs.com/xcw0754/p/12343694.html
Copyright © 2011-2022 走看看