2_2 递归与分治策略(分治法的基本思想)

基本思想:将复杂问题简单化,大事化小,小事化了,很符合中国人的思想。

打官腔:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。

 (图片源自百度)

上伪代码:

type divede-and-conquer(Problem p){
    if(|P|<N0) adhoc(p); //如果问题p的规模小于某个指定值N0时,对问题进行求解
    for(int i=0;i<k;i++){
        res[i]=divide-and-conquer(pi);   //将问题划分为k个小问题 p0,p2,...pk-1 并求解并存在res中   
    }     
    return merge(res[0],re[1]...res[k-1]);  //将res得到的结果进行合并
}

从分治法的伪代码可知,其设计出的程序一般是递归算法。后面会加入递归法的应用。

猜你喜欢

转载自www.cnblogs.com/woyaodangxueba/p/10453283.html