记分牌有效时间?

时间:2016-09-29 12:01:18

标签: algorithm data-structures

我想维持一个记分牌,其中包含根据他们的分数排序的n名球员,我所做的是: 当玩家获得x分(如果他还不是顶级玩家)时,我将他的分数与他上方玩家的分数进行比较,以便在必要时进行交换,然后重复此操作,直到我发现他上方的玩家得分大于他的得分还是直到他达到榜首。 这个问题是O(n)的最坏情况时间,可以像O(log n)那样完成吗?

1 个答案:

答案 0 :(得分:3)

保持balanced search tree,映射玩家得分。当玩家 n 的分数因 z 而改变时,

  1. 找到 n 的当前值,例如 y

  2. 删除 n

  3. 的条目
  4. n 的映射插入 y + z

  5. 复杂性是对数的。