análisis de algoritmos (cont.)

9
ELO320 1 Análisis de Algoritmos (cont.) Agustín J. González ELO320 1º sem 2002

Upload: cecilia-anthony

Post on 01-Jan-2016

35 views

Category:

Documents


1 download

DESCRIPTION

Análisis de Algoritmos (cont.). Agustín J. González ELO320 1º sem 2002. Estrategia: Dividir y Conquistar. Muchos algoritmos naturalmente tienen una estructura recursiva. Su estructura general es: Dividir el problema en un número de subproblemas - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Análisis de Algoritmos (cont.)

ELO320 1

Análisis de Algoritmos (cont.)

Agustín J. González

ELO320 1º sem 2002

Page 2: Análisis de Algoritmos (cont.)

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.

Page 3: Análisis de Algoritmos (cont.)

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);

}

Page 4: Análisis de Algoritmos (cont.)

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?

Page 5: Análisis de Algoritmos (cont.)

ELO320 5

Costo Merge-Sort

• ¿Cómo se resuelve esta recurrencia?

1

1

)()2/()2/(

)1()(

nif

nif

nnTnTnT

Page 6: Análisis de Algoritmos (cont.)

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

Page 7: Análisis de Algoritmos (cont.)

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

Page 8: Análisis de Algoritmos (cont.)

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

Page 9: Análisis de Algoritmos (cont.)

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