分治算法
分治算法,顾名思义,就是分而治之,即把总数据分解成n个小规模的数据,并且这些个小规模的数据的结构符合原问题的要求,那么就变成了一个个子问题,这时就可以递归地解决这些子问题,最后合并它们的结果,就能得出顶级父问题的结果。
总结一下就是三个步骤
1.分解:把原问题分解成一系列子问题。
2.解决:递归地求解各个子问题。子问题足够小的时候,直接求解。
3.合并:将子问题的结果合并起来。
分治算法能解决的问题一般满足以下几个条件
1.原问题与子问题有相同的模式。
2.子问题能独立求解,不然做不到分而治之。
3.具有分解终止条件,比如子问题足够小的时候,直接求解。不然会无限分解。
4.合并的复杂度不能太高,不然就起不到提高总体算法效率的作用。