哨兵

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分治法的基本思想是将一个规模为n的问题分解成k个规模较小的子问题(最好使子问题规模大致相同),这些子问题相互独立且与原问题相同,递归的解这些子问题,然后将各子问题的解合并到原问题的解,它的一般算法设计模式如下:

Divide-and-Conquer(P)

{

    if( |P| <= n0) Adhoc(P);

    divide P into smaller subinstances

    P1,P2,P3,P4.......,Pk

    for(i=1;i<=k;i++)

        yi=Divide-and-Conquer(Pi)

    return Merge(y1,y2,....yk)
}

其中|P|表示问题P的规模, n0为阈值,表示当问题P的规模不超过n0时,问题容易解决,不必再继续分解 。Adhoc(P)是分治法中的 基本子算法.

posted on 2016-04-16 20:08  哨兵  阅读(180)  评论(0编辑  收藏  举报