分治法
分治法就是将原问题划分成若干个规模较小而结构与原问题一致的问题;用递归解决这些子问题,然后在合并其结果,就得到原问题的解
分治的优点:容易确定运行时间
分治模式在每一层递归上都有三个步骤:
1.分解 将原问题分解成一系列子问题
2.解决 递归地解决各个子问题,若子问题足够小,则直接有解
3.合并 将子问题的结果合并成原问题的解
分治的关键点:
1.原问题可以一直分解为相同子问题,当子问题规模较小时,可以自燃求解,如一个元素本身有序
2.子问题的解可以通过合并可以得到原问题的解
3.子问题的分解以及解的合并一定是比较简单的,否则分解和合并所花的时间可能超出暴力解法,得不尝失