Divide and Conquer é um padrão algorítmico. Nos métodos algorítmicos, o projeto consiste em disputar uma entrada enorme, dividir a entrada em partes menores, decidir o problema em cada uma das partes pequenas e, em seguida, mesclar as soluções por partes em uma solução global. Este mecanismo de resolução do problema é denominado Estratégia Dividir e Conquistar.
O algoritmo Divide and Conquer consiste em uma disputa usando as três etapas a seguir.
Geralmente, podemos seguir o dividir e conquistar abordagem em um processo de três etapas.
Exemplos: Os algoritmos de computador específicos são baseados na abordagem Divide & Conquer:
- Problema Máximo e Mínimo
- Pesquisa binária
- Classificação (classificação por mesclagem, classificação rápida)
- Torre de Hanói.
Fundamentos da Estratégia Dividir e Conquistar:
Existem dois fundamentos da Estratégia Divide & Conquer:
- Fórmula Relacional
- Condição de parada
1. Fórmula Relacional: É a fórmula que geramos a partir da técnica dada. Após a geração da Fórmula, aplicamos a Estratégia D&C, ou seja, quebramos o problema recursivamente e resolvemos os subproblemas quebrados.
2. Condição de parada: Quando resolvemos o problema usando a Estratégia Divide & Conquer, precisamos saber por quanto tempo precisamos aplicar o Divide & Conquer. Portanto, a condição em que há necessidade de interromper nossas etapas de recursão de D&C é chamada de Condição de Parada.
Aplicações da abordagem de dividir e conquistar:
Os algoritmos a seguir são baseados no conceito da Técnica de Dividir e Conquistar:
Vantagens de dividir e conquistar
- Dividir para Conquistar tende a resolver com sucesso um dos maiores problemas, como a Torre de Hanói, um quebra-cabeça matemático. É um desafio resolver problemas complicados para os quais você não tem uma ideia básica, mas com a ajuda da abordagem de dividir para conquistar, o esforço diminuiu, pois trabalha para dividir o problema principal em duas metades e depois resolvê-los recursivamente. Este algoritmo é muito mais rápido que outros algoritmos.
- Ele usa a memória cache com eficiência, sem ocupar muito espaço, porque resolve subproblemas simples na memória cache, em vez de acessar a memória principal, mais lenta.
- É mais proficiente do que sua contraparte, técnica de Força Bruta.
- Como esses algoritmos inibem o paralelismo, ele não envolve nenhuma modificação e é tratado por sistemas que incorporam processamento paralelo.
Desvantagens de dividir e conquistar
- Como a maioria de seus algoritmos são projetados incorporando recursão, é necessário um alto gerenciamento de memória.
- Uma pilha explícita pode usar excessivamente o espaço.
- Pode até travar o sistema se a recursão for realizada rigorosamente maior que a pilha presente na CPU.