análisis de algoritmos (cont.)
Post on 01-Jan-2016
35 Views
Preview:
DESCRIPTION
TRANSCRIPT
ELO320 1
Análisis de Algoritmos (cont.)
Agustín J. González
ELO320 1º sem 2002
ELO320 2
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.
ELO320 3
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);
}
ELO320 4
• 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);
}
Algoritmo Merge-sort
--> T(n)
--> (1)
--> (1)
--> T(n/2)
--> T(n/2)
--> (n)
¿Cuál es el costo de este algoritmo?
ELO320 5
Costo Merge-Sort
• ¿Cómo se resuelve esta recurrencia?
1
1
)()2/()2/(
)1()(
nif
nif
nnTnTnT
ELO320 6
Teorema Maestro (Master Theorem)• Sea a1 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
(f(n)). T(n) entonces
grandes, mentesuficienten 1y c constante alguna
para si
y 0,algún para )(n f(n) 3.Si
)lg(nT(n) entonces),(n f(n) 2.Si
)(nT(n) entonces
0,algún para )Ο(nf(n) 1.Si
εalog
loglog
log
εalog
b
bb
b
b
c f(n)a f(n/b)
naa
a
ELO320 7
1 Uso del teorema maestro
1),()(
)()(,3,9
)3/(9)(
9log
29loglog
3
3
nnf
nnnnnfba
nnTnTab
(f(n)). T(n)
n, grandes mentesuficiente1y c constante alguna
para si
y 0,algún para )(n f(n) 3.Si
)lg(nT(n) )(n f(n) 2.Si
)(nT(n) 0algún para )Ο(nf(n) 1.Si
εalog
loglog
logεalog
b
bb
bb
c f(n)a f(n/b)
naa
a
)()(:1 2nnTCaso
ELO320 8
2 Uso del teorema maestro
11)(,2/3,1
1)3/2()(1loglog 2/3
oa nnnnfba
nTnTb
(f(n)). T(n)
n, grandes mentesuficiente1y c constante alguna
para si
y 0,algún para )(n f(n) 3.Si
)lg(nT(n) )(n f(n) 2.Si
)(nT(n) 0algún para )Ο(nf(n) 1.Si
εalog
loglog
logεalog
b
bb
bb
c f(n)a f(n/b)
naa
a
)(lg)(:2 nnTCaso
ELO320 9
3 Uso del teorema maestro
n)(,2,2
)2/(2)(12loglog 2
nnnnnfba
nnTnTab
(f(n)). T(n)
n, grandes mentesuficiente1y c constante alguna
para si
y 0,algún para )(n f(n) 3.Si
)lg(nT(n) )(n f(n) 2.Si
)(nT(n) 0algún para )Ο(nf(n) 1.Si
εalog
loglog
logεalog
b
bb
bb
c f(n)a f(n/b)
naa
a
(nlg(n)) T(n)
2)(nf(n) blog
Casoa
top related