一.介绍
1.基本思想
将一个规模为n的问题分解为k个规模较小的子问题
子问题互相独立且与原问题相同
递归地解这些子问题,然后将各子问题的解合并得到原问题的解
2.算法设计模式
divide-and-conquer(P){
if(|P|<=n0) adhoc(P); //解决小规模问题 |P|表示问题P的规模 n0为阈值
divide P into smaller subinstances P1,P2,...,Pk; //分解问题
for(i=1; i <= k; i++)
yi=divide-and-conquer(Pi) //递归解各子问题
return merge(y1,y2,...,yk); //合并子问题的解 得到原问题的解
}
3.复杂性分析
主定理: