Divida e conquiste estratégia para design e análise de algoritmos

Onde governar a multidão é como governar a viúva, o placar também é. ------"A arte da guerra"

Ideia básica da estratégia de dividir para conquistar

Divida um grande problema que é difícil de resolver diretamente em alguns problemas menores e iguais , para que eles possam ser derrotados e divididos e conquistados.

Padrão de projeto de algoritmo de estratégia de dividir e conquistar

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 dos problemas que podem ser resolvidos por estratégias de dividir para conquistar

  1. O tamanho do problema pode ser facilmente resolvido, reduzindo-o até certo ponto
  2. O problema pode ser decomposto em vários problemas menores e idênticos
  3. As soluções dos subproblemas decompostos pelo problema podem ser combinadas na solução do problema
  4. Os sub-problemas decompostos pelo problema são independentes de cada outra

Recomendado por outros artigos neste blog

Projeto de algoritmo e análise de exercícios de algoritmo recursivo (parte 2)

Projeto de algoritmo e análise de exercícios de algoritmo recursivo (on)

Problema de triângulo digital no projeto e análise de algoritmos

Projeto de algoritmo e análise de ZOJ2104- Let the Balloon Rise

Projeto de algoritmo e análise de fila de prioridade e solução ZOJ1167

Acho que você gosta

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