算法设计与分析之分治策略

凡治众如治寡,分数是也。       ------《孙子兵法》

分治策略基本思想

将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。

分治策略的算法设计模式

Divide_and_Conquer(P){
    
    
	if (|P|<=n0 ) return adhoc(P);
	divide P into smaller substances P1,P2,…,Pk;
	for (i=1; i<=k; k++) 
		yi=Divide_and_Conquer(Pi)	     //递归解决Pi
	Return merge(y1,y2,…,yk)	    //合并子问题
}

可用分治策略解决的问题的特征

  1. 问题的规模缩小到一定的程度就可以容易地解决
  2. 问题可以分解为若干个规模较小的相同问题
  3. 利用该问题分解出的子问题的解可以合并为该问题的解
  4. 问题所分解出的各个子问题是相互独立

本博客其他文章推荐

算法设计与分析之递归算法练习(下)

算法设计与分析之递归算法练习(上)

算法设计与分析之数字三角形问题

算法设计与分析之ZOJ2104- Let the Balloon Rise

算法设计与分析之优先队列及解决ZOJ1167

猜你喜欢

转载自blog.csdn.net/L333333333/article/details/102531433