Tournament bracket placement algorithm

前端 未结 10 585
生来不讨喜
生来不讨喜 2020-12-02 09:37

Given a list of opponent seeds (for example seeds 1 to 16), I\'m trying to write an algorithm that will result in the top seed playing the lowest seed in that round, the 2nd

10条回答
  •  有刺的猬
    2020-12-02 09:56

    A C version.

    int * pctournamentSeedArray(int PlayerCnt)
    {
        int * Array;
        int * PrevArray;
        int i;
    
        Array = meAlloc(sizeof(int) * PlayerCnt);
    
        if (PlayerCnt == 2)
        {
            Array[0] = 0;
            Array[1] = 1;
            return Array;
        }
    
        PrevArray = pctournamentSeedArray(PlayerCnt / 2);
        for (i = 0; i < PlayerCnt;i += 2)
        {
            Array[i] = PrevArray[i / 2];
            Array[i + 1] = (PlayerCnt - 1) - Array[i] ;
        }
        meFree(PrevArray);
        return Array;
    }
    

提交回复
热议问题