Saltar a contenido

Definición

  • Hay 3 pasos:
    • Dividir: Dividir el problema hasta llegar a los casos base (solución trivial o inmediata)
    • Conquistar: Resolver recursivamente los subproblemas
    • Combinar: Combinar las soluciones obtenidas hasta llegar a la solución final
  • Los subproblemas deben ser independientes es decir que resolver uno no afecta a los demás
  • La solución debe componerse de solución a subproblemas

Ventajas

  • Se llega a la solución optima
  • Son modulares es decir son fáciles de integrar en una aplicación más grande
  • Se pueden procesar en paralelo dado que cada subproblema es independiente
  • Se pueden escalar fácilmente (por lo anterior)

Desventajas

  • Pueden ser complicados de implementar
  • Requieren más memoria
  • Pueden tener problemas por stackoverflow por los llamados recursivos

Ejemplo

Calcular el máximo de un arreglo

Dividir

Conquistar y combinar