《算法设计与分析》第05章1.ppt

《算法设计与分析》第05章1

概述 设有n=2k个运动员要进行网球循环赛,设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一天只能赛一次; (3)循环赛一共进行n-1天。 分治 将选手分为两组,n个选手的日程表就可通过n/2个选手设计的日程表来决定。 例:设计循环赛日程表 设n=2k,比赛日程表有n行n列,其中第i行第1列的数字表示第i个参赛选手的编号,第i行第j列的数字是第i个选手在第j-1天的比赛对手的选手编号。 用分治法设计算法,按递归过程进行,逐次将参赛的人数减半。当折半到只有两人比赛时,比赛很简单。将2人的比赛日程表合成为4人的比赛日程表,再将4人的比赛日程表合成为8人的比赛日程表,逐次合成为n个人的比赛日程表。 合并方法,要观察比赛日程表本身的结构才能得到。 1 2 2 1 1 2 3 4 2 1 4 3 3 4 1 2 4 3 2 1 1 2 3 4 5 6 7 8 2 1 4 3 6 5 8 7 3 4 1 2 7 8 5 6 4 3 2 1 8 7 6 5 5 6 7 8 1 2 3 4 6 5 8 7 2 1 4 3 7 8 5 6 3 4 1 2 8 7 6 5 4 3 2 1 8个选手的比赛日程表 分治法是一种非常有用的算法设计技术,它将问题的实例划分为若干个较小的实例(最好用有

文档评论(0)

1亿VIP精品文档

相关文档