摘 要分治算法在实际中有广泛的应用,例如,对于 n 个元素的排序问题,当 n = 1 时,不需任何计算;当 n = 2 时,只要做一次比较即可排好序;当 n = 3 时只要做两次比较即可……而当 n 较大时,问题就不容易那么处理了
要想直接解决一个较大的问题,有时是相当困难的
分治算法的基本思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之
假如原问题可分割成 k 个子问题,1 < k < n+1,且这些子问题都可解,并可利用这些子问题的解求出原问题的解,那么这种分治算法就是可行的
由分治算法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便
在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易求出其解
由此自然引出递归算法
分治与递归像一对孪生兄弟,常常同时应用在算法设计之中,并由此产生许多高效算法
本次课程设计正是采纳分治算法来解决循环赛日程表的安排问题
根据算法的设计结果,采纳 c 语言实现算法,通过测试分析,程序运行结果正确,运行效率较高
关 键 词 : 分 治 算 法目 录摘 要
I1 问 题 描 述
12 问 题 分 析
23 算 法 设