La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ELO3201 Análisis de Algoritmos (Cont.) Agustín J. González ELO320 1º sem 2004.

Presentaciones similares


Presentación del tema: "ELO3201 Análisis de Algoritmos (Cont.) Agustín J. González ELO320 1º sem 2004."— Transcripción de la presentación:

1 ELO3201 Análisis de Algoritmos (Cont.) Agustín J. González ELO320 1º sem 2004

2 ELO3202 Estrategia: Dividir y Conquistar Muchos algoritmos naturalmente tienen una estructura recursiva. Su estructura general es: Dividir el problema en un número de subproblemas Conquistar el problema resolviéndolo recursivamente. Si el problema es pequeño se resuelve en forma directa. Combinar las soluciones de los subproblemas. Ejemplo: merge-sort : ordenar n elementos Pasos: Dividir la secuencia de n elementos en dos subsecuencias de tamaño n/2 Ordenar las subsecuencias recursivamente usando merge-sort Combinar las soluciones parciales.

3 ELO3203 Algoritmo Merge-sort Sea A un arreglo de n elementos y p, r índices del rango a ordenar Merge-Sort(a, p, r) if ( p < r ) { q = parteEntera((p+r)/2); Merge-Sort(a, p, q); Merge-Sort(a, q+1,r); Merge(a, p, q, r); }

4 ELO3204 ¿Cuál es el costo de este algoritmo? Algoritmo Merge-sort Sea A un arreglo de n elementos y p, r índices del rango a ordenar. Merge-Sort(A, p, r) if ( p < r ) { q = parteEntera((p+r)/2); Merge-Sort(A, p, q); Merge-Sort(A, q+1,r); Merge(A, p, q, r); } --> T(n) -->  (1) --> T(n/2) -->  (n)

5 ELO3205 Costo Merge-Sort ¿Cómo se resuelve esta recurrencia?

6 ELO3206 Costo Merge-Sort La descomposición termina cuando:

7 ELO3207 Formas de resolución de recurrencias Se puede obtener una fórmula descomponiendo la recurrencia y buscando la ley de formación de los términos. Por ¨intuición u olfato¨ se propone una solución. En ambos casos previos es necesario demostrar la expresión obtenida usando inducción. Alternativamente se puede aplicar el teorema maestro 

8 ELO3208 Teorema Maestro (Master Theorem) Sea a  1 y b  1 constantes, sea f(n) una función y sea T(n)=aT(n/b) +f(n) donde n/b es  n/b  o  n/b . Entonces T(n) puede ser acotada asintóticamente por

9 ELO3209 1 Uso del teorema maestro

10 ELO32010 2 Uso del teorema maestro

11 ELO32011 3 Uso del teorema maestro

12 ELO32012 Cambio de variables ¿Cómo resolvemos la recurrencia: ? Si hacemos m=lg 2 n, tenemos: Si renombramos S(m)=T(2 m ) Lo cual podemos resolver más fácilmente, caso 1:

13 ELO32013 Ejercicio Muestre los pasos seguidos por merge-sort para ordenar: {3, 6, 7, 2, 8, 3, 5, 8, 9, 4, 1, 0,10, 2} Divertimento: Eduardo recién llegado al barrio se acerca a su vecino y le pregunta si tiene hijos. ¨Sí, tengo 3¨, contesta. ¿Qué edad tienen?, ¨el producto de sus edades es 36 y la suma corresponde la número de la casa del frente¨. Eduardo mira e indica: Pero me falta un dato!. Tienes razón, replica el vecino y agrega: ¨El mayor tiene los ojos azules¨. ¿Qué edad tienen?


Descargar ppt "ELO3201 Análisis de Algoritmos (Cont.) Agustín J. González ELO320 1º sem 2004."

Presentaciones similares


Anuncios Google