1 / 5

ALGORITMOS DIVIDE Y VENCERAS

ALGORITMOS DIVIDE Y VENCERAS. Divide y Vencerás en su acepción más amplia, es algo más que una técnica de diseño de algoritmos, de hecho, suele ser considerada una filosofía general para resolver problemas.

Download Presentation

ALGORITMOS DIVIDE Y VENCERAS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITMOS DIVIDE Y VENCERAS

  2. Divide y Vencerás en su acepción más amplia, es algo más que una técnica de diseño de algoritmos, • de hecho, suele ser considerada una filosofía • general para resolver problemas. • Es una técnica de diseño de algoritmos que consiste en resolver problemas a partir de la solución de subproblemas del mismo tipo, pero de menor tamaño. • La técnica consiste en: • Dividir el problema en k subproblemas del mismo tipo pero de menor tamaño, donde 1 <=k <=n, donde n es el tamaño de la entrada del problema. • Resolver independientemente todos los subproblemas. • Combinar las soluciones de los subproblemas para obtener la solución general del problema.

  3. método divideYVencerás(x) retorna y si x es suficientemente sencillo entonces // caso directo retorna algoritmoDirecto(x) fin si // caso recursivo descompone x en subproblemas x1, x2, .., xs desde i := 1 hasta s hacer // llamadas recursivasyi := divideYVencerás(xi)fhacer // combina las soluciones y := combinación de las soluciones parciales (yi) retorna yfmétodoejemplos de algoritmos divide y vencerasMergeSort (Ordenamiento)Busqueda Binaria (Busqueda) PSEUDOCODIGO DYV

  4. Se obtiene aplicando el teorema principal de recurrencia: t(n) = a*t(n/b) + g(n) DONDE: a = cantidad de subproblemas n/b = tamaño de los subproblemas g(n) = El coste de dividir el problema principal en subproblemas mas pequeños y combinar soluciones. Orden de magnitud

  5. Lentitud en el proceso recursivo • No se puede utilizar cuando un problema principal no se resuelve con la suma de las soluciones de los subproblemas ventajas desventajas • La ventaja de los algoritmos de dyv es que consiguen reducir el tamaño del problema en cada paso, por lo que sus tiempos de ejecución suelen ser muy buenos (normalmente de orden logarítmico o lineal).

More Related