分治算法

分治算法,顾名思义,就是分而治之,即把总数据分解成n个小规模的数据,并且这些个小规模的数据的结构符合原问题的要求,那么就变成了一个个子问题,这时就可以递归地解决这些子问题,最后合并它们的结果,就能得出顶级父问题的结果。

总结一下就是三个步骤

1.分解:把原问题分解成一系列子问题。

2.解决:递归地求解各个子问题。子问题足够小的时候,直接求解。

3.合并:将子问题的结果合并起来。

 

分治算法能解决的问题一般满足以下几个条件

1.原问题与子问题有相同的模式。

2.子问题能独立求解,不然做不到分而治之。

3.具有分解终止条件,比如子问题足够小的时候,直接求解。不然会无限分解。

4.合并的复杂度不能太高,不然就起不到提高总体算法效率的作用。

 

posted @ 2022-05-17 11:56  codemelo  阅读(70)  评论(0)    收藏  举报