问答网

当前位置: 首页 > 知识问答 > 分治法的基本规则

分治法的基本规则

知识问答 浏览4次

一、分治法的设计思想

将一个难以直接求解的大问题,分解成若干个规模较小的子问题,递归地求解这些子问题,然后合并子问题的解得到原问题的解。

注意:

1.子问题与原问题形式相同

2.子问题可以彼此独立的求解,即子问题之间不包含公共的子问题

3.子问题的规模缩小到一定程度就可以容易地直接求解

二、分治法的求解过程

划分子问题:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题。

求解子问题:若子问题规模较小而容易被解决则直接求解,否则递归地求解各个子问题。

合并子问题:将各个子问题的解合并为原问题的解。

分治法的一般算法描述:

在用分治法设计算法时,最好使子问题的规模大致相同。换句话说,将一个问题分成大小相等的k个子问题的处理方法是行之有效的。

当k=1时称为减治法。

许多问题可以取 k=2,称为二分法,这种使子问题规模大致相等的做法是出自一种平衡子问题的思想,它几乎总是比子问题规模不等的做法要好。

三、分治算法的时间复杂度分析方法

按照递归算法的分析过程,首先建立递归方程,然后求解递归方程

划分阶段的时间复杂性

分解为a 个子问题。

每个子问题大小为n/b。

假设划分时间=D(n)

求解子问题阶段的时间复杂性

递归调用

时间= aT(n/b)

合并子问题的解阶段的时间复杂性

假设合并时间=C(n)。