Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLorena Soler Ojeda Modificado hace 10 años
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?
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.