分治法的递归算法模式

T DivideAndConquer(P)
{
    if(P可以直接解决)
    {
        T <- P的结果;
        return T;
    }
    
    将P分解为子问题{P1, P2, ..., Pn};
    for_each(Pi : {P1, P2, ..., Pn})
    {
        ti <- DivideAndConquer(Pi);//递归解决子问题Pi
    }
    T <- Merge(t1, t2, ..., tn);//合并子问题的解
    
    return T;
}

要点

  • 一般化问题,使原始问题和子问题的描述统一。

你可能感兴趣的:(分治法的递归算法模式)