Divide and Conquer es un patrón algorítmico. En los métodos algorítmicos, el diseño consiste en disputar una entrada enorme, dividir la entrada en partes menores, decidir el problema en cada una de las partes pequeñas y luego fusionar las soluciones por partes en una solución global. Este mecanismo de solución del problema se llama estrategia Divide & Conquer.
El algoritmo Divide and Conquer consiste en una disputa mediante los siguientes tres pasos.
Generalmente podemos seguir el divide y conquistaras enfoque en un proceso de tres pasos.
Ejemplos: Los algoritmos informáticos específicos se basan en el enfoque Divide & Conquer:
- Problema máximo y mínimo
- Búsqueda binaria
- Clasificación (clasificación por combinación, clasificación rápida)
- Torre de Hanoi.
Fundamentos de la estrategia Divide & Conquer:
Hay dos fundamentos de la estrategia Divide & Conquer:
- Fórmula relacional
- Condición de parada
1. Fórmula relacional: Es la fórmula que generamos a partir de la técnica dada. Después de generar la Fórmula, aplicamos la Estrategia D&C, es decir, dividimos el problema de forma recursiva y resolvemos los subproblemas rotos.
2. Condición de parada: Cuando solucionamos el problema usando la estrategia Divide & Conquer, entonces necesitamos saber durante cuánto tiempo debemos aplicar Divide & Conquer. Entonces, la condición en la que es necesario detener nuestros pasos recursivos de D&C se denomina condición de detención.
Aplicaciones del enfoque divide y vencerás:
Los siguientes algoritmos se basan en el concepto de la técnica divide y vencerás:
Ventajas de divide y vencerás
- Divide y Conquistarás suelen resolver con éxito uno de los mayores problemas, como es el de la Torre de Hanoi, un rompecabezas matemático. Es un desafío resolver problemas complicados para los cuales no tienes una idea básica, pero con la ayuda del enfoque de divide y vencerás, se ha reducido el esfuerzo ya que se trabaja para dividir el problema principal en dos mitades y luego resolverlas de forma recursiva. Este algoritmo es mucho más rápido que otros algoritmos.
- Utiliza eficientemente la memoria caché sin ocupar mucho espacio porque resuelve subproblemas simples dentro de la memoria caché en lugar de acceder a la memoria principal más lenta.
- Es más competente que su contraparte, la técnica Brute Force.
- Dado que estos algoritmos inhiben el paralelismo, éste no implica ninguna modificación y es manejado por sistemas que incorporan procesamiento paralelo.
Desventajas de divide y vencerás
- Dado que la mayoría de sus algoritmos están diseñados incorporando recursividad, requiere una alta gestión de la memoria.
- Una pila explícita puede abusar del espacio.
- Incluso podría bloquear el sistema si la recursividad se realiza con mayor precisión que la pila presente en la CPU.