4.3 递归
4.31分治
1.什么是分治?
2.分治法的三个步骤?
3.使用分治法,子问题需要满足的条件。
4.什么是减治?
5.分治法作为一种算法思想,有哪几种实现手段?这说明了什么?
4.32递归
6.递归逻辑中的两个重要概念。
答案
1.分治法将原问题划分为若干个规模较小而结构与原问题相似的子问题,然后分别解决这些子问题,最后合并子问题的解,即可得到为原问题的解。
2.分治法的三个步骤:1.分解:将原问题分解为若干和原问题拥有相同或相似结构的子问题。
2.解决:递归求解所有子问题。如果存在子问题打的规模小到可以直接解决,就直接解决它。
3.合并:将子问题的解合并为原问题的解。
3.分治法分解出的子问题应该是相互独立,没有交叉的。如果存在两个子问题有相交部分,那么不应该使用分治法解决。
4.把子问题个数为1的情况称为减治比如求解n!
5.递归和非递归。这说明了分治是一种思想,递归是一种解决分治问题的方法。
6. 递归边界和递归式。