常见算法要点思路小总结
子问题的构思:对于整体的问题的抽象化理解,不要往分解问题的角度去想,而是想排除某个或者某些元素之后问题规模缩小,然后递归调用。同样注意,分治中按照区块进行分组调用,然后合并。
对于初始条件和递归退出条件:分治算法递归的调用是需要退出条件的,而DP算法是需要初始条件去逐层构造
分治算法
-
划分子问题+递归求解子问题+合并子问题——自上而下
-
既然是递归解决子问题,那么递归的要求:递归主体,退出条件都要明确
-
例如寻找在大小为n的数组中找到第i大的数,如果不使用分治算法,需要 O ( n l o g n ) O(nlogn)