问题描述:设有n=个运动员要进行网球循环赛。现在要设计一个满足以下条件的比赛日程表。
(1)每个选手必须要与其他n-1个选手各赛一次;
(2) 每个选手一天只能赛一场;
(3) 循环赛赛程是n-1天。
算法设计:设计一张循环赛日程表。
问题输入:输入k值。
问题输出:输出n×n的赛程表。
问题思路:可以采用分治递归解决,也可以采用分治非递归算法。
A. 分治递归方案
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
2 | 1 | 4 | 3 | 6 | 5 | 8 | 7 |
3 | 4 | 1 | 2 | 7 | 8 | 5 | <