根据玩家位置对阵列进行排序

时间:2017-06-08 20:48:36

标签: php sorting

我有一个奇怪的情况,我试图根据他们的位置对足球运动员进行排序。

我们说我有10个玩家,我需要根据他们的位置对它们进行排序:

John | Position 1
Bill | Position 1
Gael | Position 2
Phil | Position 2
Joao | Position 2
Cale | Position 3
Bruu | Position 4
Aron | Position 5
Jimm | Position 5
Carl | Position 5

我需要尽可能地将它们排序,在这种情况下:

第1队 - John,Gael,Cale,Jimm,Carl

第2组 - 比尔,菲尔,若昂,布鲁,阿隆

我开始尝试分割位置,然后在一个或另一个团队中对它们进行排序,但它没有按预期工作,因为有时我只有一个位置上的玩家和另一个位置上的3个。

1 个答案:

答案 0 :(得分:0)

似乎唯一合理的做法是,如果你在每个位置都没有足够的玩家,那就是按位置对玩家进行排序,然后浏览列表,将下一个玩家分配给下一个团队。也就是说,根据您的列表和两个团队,您可以编写执行此操作的代码:

John | Position 1 | Team 1
Bill | Position 1 | Team 2
Gael | Position 2 | Team 1
Phil | Position 2 | Team 2
Joao | Position 2 | Team 1
Cale | Position 3 | Team 2
Bruu | Position 4 | Team 1
Aron | Position 5 | Team 2
Jimm | Position 5 | Team 1
Carl | Position 5 | Team 2

代码非常简单:

int numTeams = 2
int team = 0
for each player
{
    Assign player to teams[team]
    team = team + 1
    if (team == numTeams) then
    {
        team = 0
    }
}

如果您有其他限制,例如团队理想情况下具有x个位置y,那么算法会稍微改变以适应这些限制。但在我提出建议之前,你必须向我提供更多信息。