Introducci - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Introducci

Description:

Introducci n al an lisis de algoritmos Factores Consumo de memoria Tiempo de ejecuci n Independiente de la m quina Independiente del lenguaje de programaci n ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 20
Provided by: Francis245
Category:

less

Transcript and Presenter's Notes

Title: Introducci


1
Introducción al análisis de algoritmos
2
Factores
  • Consumo de memoria
  • Tiempo de ejecución
  • Independiente de la máquina
  • Independiente del lenguaje de programación

3
Conceptos Básicos
  • Contador de frecuencias
  • Expresión algebraica que indica el
  • número de veces que se ejecutan
  • las instrucciones de un algoritmo

4
Ejemplos Algoritmo 1
  • Lea a,b,c 1
  • xab 1
  • yac 1
  • zbc 1
  • wx/y-z 1
  • Escriba a,b,c,w 1
  • -----------------
  • Contador de frecuencias 6

5
Algoritmo 2
  • Lea n 1
  • s0 1
  • i1 1
  • While iltn n1
  • ss1 n
  • ii1 n
  • End While n
  • Escriba n,s 1
  • -------------
  • Contador de frecuencias 4n 5

6
Algoritmo 3
  • Lea n,m 1
  • s0 1
  • i1 1
  • While iltn n1
  • t0 n
  • j1 n
  • While jltm (nm)n
  • tt1 nm
  • jj1 nm
  • End While nm
  • sst n
  • ii1 n
  • End While n
  • Escriba n,m,s 1
  • -----------------
  • Contador de frecuencias 4(nm) 7n 5

7
Algoritmo 4
  • Lea n 1
  • s0 1
  • i1 1
  • While iltn n1
  • t0 n
  • j1 n
  • While jlt n n2n
  • tt1 n2
  • jj1 n2
  • End While n2
  • sst n
  • ii1 n
  • End While n
  • Escriba n,s 1
  • -----------------
  • Contador de frecuencias 4n2 7n 5

8
Algoritmo 5
  • Lea n,m 1
  • s0 1
  • i1 1
  • While iltn n1
  • ss1 n
  • ii1 n
  • End While n
  • Escriba n,s 1
  • s0 1
  • i1 1
  • While iltm m1
  • tt1 m
  • ii1 m
  • End While m
  • Escriba n,s 1
  • -----------------
  • Contador de frecuencias 4n 4m 9

9
Conceptos Básicos (cont.)
  • Orden de Magnitud
  • Indica como crece el tiempo de ejecución de un
    algoritmo cuando crece el tamaño del problema
    resuelto por el algoritmo, es decir, se mide en
    base a un tamaño de entrada el cual puede ser el
    número de elementos a imprimir, a sumar a ordenar
    etc.
  • Se puede obtener a partir del contador de
    frecuencias así

10
  • Se eliminan del contador de frecuencias los
    coeficientes, constantes y términos negativos
  • De cada conjunto de términos dependientes (de una
    misma variable) se selecciona el término
    dominante (mayor)
  • El orden de magnitud será la suma de los términos
    seleccionados (normalmente es uno solo)

11
  • Para los algoritmos anteriores se tienen los
  • siguientes órdenes de magnitud
  • Algoritmo Orden
  • 1 O(1)
  • 2 O(n)
  • 3 O(nxm)
  • 4 O(n2)
  • 5 O(nm)

12
  • Órdenes de magnitud más frecuentes ordenados en
    forma ascendente desde el más eficiente
  • O(1) Constante
  • O(log2n) Logarítmico
  • O(n) Lineal
  • O(nlog2n) Semilogarítmico
  • n2 Cuadrático
  • n3 Cúbico
  • 2n Exponencial

13
Ejemplo Suma de los n números enteros
  • Algoritmo a
  • Lea n
  • s1
  • suma0
  • While sltn
  • sumasuma s
  • ss1
  • End While
  • Escriba suma
  • Algoritmo b
  • Lea n
  • suman(n1)/2
  • Escriba suma

El algoritmo a es O(n) mientras que el algoritmo
b es O(1)
14
Más ejemplos
  • Lea n 1
  • s0 1
  • in 1
  • While igt1 Log2n 1
  • ss1 Log2n
  • ii/2 Log2n
  • End While Log2n
  • Escriba n,s 1
  • ----------------
  • Contador de frecuencias 4 Log2n 5
  • ? O(Log2n)

15
  • Lea n 1
  • s0 1
  • For i1 to n n1
  • t0 n
  • For j1 to i n(n1)/2 n
  • tt1 n(n1)/2
  • End For n(n1)/2
  • sst n
  • End For n
  • Escriba n,s 1
  • ---------------------------
  • Contador de frecuencias 3n(n1)/2 5n 4
  • (3n2 3n)/2 5n 4
  • ? O(n2)

16
  • Lea n 1
  • s0 1
  • i1 1
  • while ilt n n1
  • t0 n
  • jn n
  • while jgt1 nLog2n n
  • tt1 nLog2n
  • jj/2 nLog2n
  • End while nLog2n
  • Escriba t n
  • sst n
  • ii1 n
  • End while n
  • Escriba n,s 1
  • -------------------------
  • Contador de frecuencias 8n 4nLog2n 5
  • ? O(nLog2n)

17
  • Lea n 1
  • s0 1
  • For i1 to n n1
  • t0 n
  • For j1 to i n(n1)/2 n
  • For k1 to j z n(n1)/2
  • ss1 z
  • End For z
  • End For n(n1)/2
  • End For n
  • ---------------------------
  • Contador de frecuencias 3 4n (3/2)n(n1)
    3z
  • Donde z , desarrollando se obtiene

n ? w(w1)/2 w1
18
n n n ? w(w1)/2
½ ? w2 ½ ? w w1 w1
w1 Y como Al simplificar se
obtiene z(n3 3n2 2n) /6 Por lo tanto el
contador de frecuencias es un polinomio de grado
3, entonces el algoritmo es O(n3)
n ? w
n(n1)/2 w1
n ? w2
n(n1)(2n1)/6 w1
y
19
  • void ejemplo(int T, int n)
  • contador
  • int k0 1
  • for(int i0 iltn i) n1
  • for(int j0 jltTi j) sn
  • kkTj s
  • s
  • n
  • -----------------
  • Contador de frecuencias 3n 3s 2
  • Orden O(ns)? O(Max(n,s))
  • Qué es s?
Write a Comment
User Comments (0)
About PowerShow.com