Divide and Conquer és un patró algorítmic. En els mètodes algorísmics, el disseny consisteix a plantejar una disputa sobre una entrada enorme, dividir l'entrada en peces menors, decidir el problema de cadascuna de les peces petites i, a continuació, combinar les solucions a trossos en una solució global. Aquest mecanisme per resoldre el problema s'anomena estratègia Divide & Conquer.
L'algoritme Divide and Conquer consisteix en una disputa mitjançant els tres passos següents.
En general, podem seguir el divideix i conquereix enfocament en un procés de tres passos.
Exemples: Els algorismes informàtics específics es basen en l'enfocament Divide & Conquer:
- Problema màxim i mínim
- Cerca binària
- Ordenació (ordenació combinada, ordenació ràpida)
- Torre de Hanoi.
Fonaments de l'estratègia Divide & Conquer:
Hi ha dos fonamentals de l'estratègia Divide & Conquer:
- Fórmula relacional
- Condició d'aturada
1. Fórmula relacional: És la fórmula que generem a partir de la tècnica donada. Després de la generació de la fórmula, apliquem l'estratègia D&C, és a dir, trenquem el problema de forma recursiva i resolem els subproblemes trencats.
2. Condició d'aturada: Quan trenquem el problema amb l'estratègia Divide & Conquer, hem de saber que durant quant de temps hem d'aplicar divide & Conquer. Per tant, la condició on la necessitat d'aturar els nostres passos de recursivitat de D&C s'anomena Condició d'aturada.
Aplicacions de l'enfocament Divide and Conquer:
Els algorismes següents es basen en el concepte de la tècnica Divide and Conquer:
Avantatges de Divide and Conquer
- Divide and Conquer tendeix a resoldre amb èxit un dels problemes més grans, com ara la Torre de Hanoi, un trencaclosques matemàtic. És un repte resoldre problemes complicats dels quals no tens una idea bàsica, però amb l'ajuda de l'enfocament divideix i vencem, ha reduït l'esforç, ja que treballa dividint el problema principal en dues meitats i després resoldre'ls de manera recursiva. Aquest algorisme és molt més ràpid que altres algorismes.
- Utilitza de manera eficient la memòria cau sense ocupar molt d'espai perquè resol subproblemes senzills dins de la memòria cau en lloc d'accedir a la memòria principal més lenta.
- És més competent que la de la seva contrapartida tècnica de força bruta.
- Com que aquests algorismes inhibeixen el paral·lelisme, no implica cap modificació i és gestionat per sistemes que incorporen processament paral·lel.
Inconvenients de Divide and Conquer
- Atès que la majoria dels seus algorismes estan dissenyats incorporant recursivitat, de manera que requereix una gestió de memòria elevada.
- Una pila explícita pot fer un ús excessiu de l'espai.
- Fins i tot pot bloquejar el sistema si la recursivitat es realitza de manera rigorosament superior a la pila present a la CPU.