java - 如何创建平衡的团体

标签 java algorithm balanced-groups

我有一个游戏,可以由多组用户相互竞争来玩。这种群体的数量很少,不到10人。玩家数量有数千人。

当用户购买门票时,会为其分配一个组。目前,为玩家分配一个组是随机完成的,但这可能会导致一个组中玩家很多而其他组中玩家很少的情况。

我遇到的问题是如何分配组编号以使组具有可比较的大小。

最佳答案

保留HashMap<Integer, List<Group>> ,关键在于相关群体的规模。每个人都从零成员开始。从最小的非空大小括号的顶部弹出一个组,将新成员添加到其中,然后将其推送到下一个最大的大小。

You get O(n)创建它,O(1)插入或弹出一个组,您可以得到 O(1)如果您在调用之间将其缓存起来,则可以找到最小的组,并且只要当前组用完就可以找到下一组。

关于java - 如何创建平衡的团体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24417551/

相关文章:

java - 打印优先队列的内容

java - 从 json 中过滤唯一列表

java - 在java中更改包名称声明的快捷方式

algorithm - 排序链表最快的算法是什么?

java - 傻瓜 RTrees

python - 根据给定的散点几何量化二维表面的粗糙度

java - 如何在Eclipse的Gradle项目中重命名包