Anlisis y Diseo de Algoritmos Ejercicio Dada una











- Slides: 11
Análisis y Diseño de Algoritmos Ejercicio: Dada una recurrencia de n números, encontrar el segmento continuo de mayor suma. Fuerza Bruta : O(n 2)
Análisis y Diseño de Algoritmos Hipótesis: Tengo la suma máxima para x 1, …, xn y ahora agrego xn De esto tenemos dos casos • xn<0 , entonces no hago nada • xn>=0 – Cuando el Sij es el sufijo (siempre se inserta el n-ésimo elemento al fina). – Cuando Sij no es el sufijo
Análisis y Diseño de Algoritmos • En general tenemos: T(n)=D(n)+S(n)+U(n) Donde D(n), es la instancia de dividir el problema. S(n), es la resolución de los subproblemas. U(n), es la unión de las soluciones parciales para obtener la solución completa.
Análisis y Diseño de Algoritmos Seudo-Código Recursivo
Análisis y Diseño de Algoritmos Implementaciones • Recursivas • Código Directo • Almacenar los resultados de los subproblemas ya calculados (Programación Dinámica)
Análisis y Diseño de Algoritmos Ejemplo Calcular el número de fibonacci fn=fn-1+fn-2 f 0=0 y f 1=1 Implementación: int f(n){ if(n<=1) return(n); else return(f(n-1)+f(n-2)); } ¿Cuál es el orden de este algoritmo?
Análisis y Diseño de Algoritmos Repetimos Calculos
Análisis y Diseño de Algoritmos Alternativa, Utilización Dinámica. de la programación Esta implementación es de orden O(n), pero utiliza espacio lineal.
Análisis y Diseño de Algoritmos Problema: Encontrar la subsecuencia común más larga entre dos secuencias Subsecuencia: cualquier subconjunto elementos que mantienen el orden. de ¿Cuánto es el número de subsecuencias distintas de una secuencia de largo n?
Análisis y Diseño de Algoritmos Aquí es importante mantener el orden de las secuencias, la idea es que no se crucen las paridades entre los arreglos. ¿Es posible utilizar inducción?
Análisis y Diseño de Algoritmos Implementación: ¿ Es una buena idea utilizar recursividad?











