Estrategia de dividir y conquistar para el diseño y análisis de algoritmos

Donde gobernar a la multitud es como gobernar a la viuda, también lo es la puntuación. ------"El arte de la guerra"

Idea básica de la estrategia de divide y vencerás

Divida un gran problema que sea difícil de resolver directamente en algunos problemas más pequeños, iguales , para que puedan ser derrotados, divididos y conquistados.

Patrón de diseño de algoritmo de la estrategia de divide y vencerás

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)	    //合并子问题
}

Características de los problemas que se pueden resolver mediante estrategias de divide y vencerás

  1. El tamaño del problema se puede resolver fácilmente reduciéndolo hasta cierto punto.
  2. El problema se puede descomponer en varios problemas idénticos más pequeños.
  3. Las soluciones de los subproblemas descompuestos por el problema se pueden combinar en la solución del problema.
  4. Los sub-problemas descompuestos por el problema son independientes de uno al otro

Recomendado por otros artículos de este blog

Diseño de algoritmos y análisis de ejercicios de algoritmos recursivos (abajo)

Diseño de algoritmos y análisis de ejercicios de algoritmos recursivos (encendido)

Problema del triángulo digital en el diseño y análisis de algoritmos

Diseño y análisis de algoritmos de ZOJ2104- Let the Balloon Rise

Diseño y análisis de algoritmos de cola de prioridad y solución ZOJ1167

Supongo que te gusta

Origin blog.csdn.net/L333333333/article/details/102531433
Recomendado
Clasificación