Vous êtes sur la page 1sur 16

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS


Carrera de Ingeniería Informática

Seminario de Grado
Modulo: Algoritmos y Estructura de Datos

“Tema 1. Análisis de los Algoritmos”

Docente: Ing. Ubaldo Pérez Ferreira


E-mail: jesser92@hotmail.com

Santa Cruz de la Sierra – Bolivia ©


2007
Análisis de los Algoritmos

Razones para analizar algoritmos:


•Para verificar la eficiencia de los programas
•Para ganar cierta habilidad
Existe mucho criterios para analizar algoritmos, se hablan de
dos fases:
•Estimación previa (nuestro interés)
•Testeo posterior.
Análisis de los Algoritmos

Básicamente se desea determinar los cuantos.


•Cantidad de ejecución en t unidades de tiempo (t)
•Numero de veces que se ejecuta o frecuencia de conteo O(n)

Tiempo total = n x t

Frecuencia de Conteo.
¿Cuántas veces se ejecuta x = x + 1?

a) X = X + 1 0(n)=1 vez
Análisis de los Algoritmos

¿Cuántas veces se ejecuta?

if Pred then //O(n)=1, si Pred es sencillo


S1
Else
S2

if f(x) then // O(n)=O(f(x))+1, si Pred es una función


S1
Else
S2
Análisis de los Algoritmos

¿Cuántas veces se ejecuta?

for i=a to n O(n)=(n-a)+2


end for
for i=f(a) to f(n) si t’=O(f(a)) y t’’= O(f(n))
end for O’(n)=(f(n)-f(a))+2
O(n)=O’(n) + t’ + t’
while Pred si pred=True, O(n)=1 * Nro. Veces
while f(a) si f(a)=true, O(n)=(1+O(f(a))) * Nro. Veces
while a < n O(n)=(n-a)+1
while a ≤ n O(n)=(n-a)+2
Análisis de los Algoritmos

¿Cuántas veces se ejecuta?

repeat
until Pred //O(n)=1* Nro. Veces

if f(x) then // O(n)=T(f)+1, si Pred es una función


S1
Else //0 vez
S2
Análisis de los Algoritmos

Frecuencia de Conteo.
¿Cuántas veces se ejecuta x = x + 1?

a) For i=1 to n a) For i=1 to n


x=x+1 For j=1 to n
end for x=x+1
end for
end for
Total n veces

Total nxn o n2 veces


Análisis de los Algoritmos

Herramientas que ayudan en el conteo, ejemplo las sumatorias


n

∑ 1 = 1+1+…+1=n
i=1
n

∑ i = 1+2+…+n= n(n+1)

i=1 2

∑ i = 1 +2 +…+n =
2 2 2 2
n ( n+1 ) ( 2n+1 )

i=1 6

Ver detalles en KNUTH


Análisis de los Algoritmos

Ejemplo.

1 For i=1 to n Pasos Frecuencia


2 x=x+1 1 n+1
3 End for
2 n
3 n
n

∑ 1 = 1+1+…+1=n 3n+1
i=1
Análisis de los Algoritmos

Grafica.

35

30
0(n) n
0(n)=3n+1 4 1 25
7 2
10 3
13 4
20
16 5 Serie1
19 6 15
22 7
25 8
28 9 10
31 10

0
1 2 3 4 5 6 7 8 9 10
Análisis de los Algoritmos

Ejemplo.

1 For i=1 to n Pasos Frecuencia


2 For j=1 to n 1 n+1
3 x=x+1
2 n2 +n
4 End for
3 n2
5 End for
4 n2
5 n

n n 3n2+2n+1

∑1 ∑1=nxn=n 2

i=1 j=1
Análisis de los Algoritmos

Grafica.

350
2
0(n ) n 300
2 2
0(n )=3n +2n+2 7 1
18 2 250
35 3
58 4
200
87 5
122 6 Serie1
163 7 150
210 8
263 9 100
322 10
50

0
1 2 3 4 5 6 7 8 9 10
Análisis de los Algoritmos

De manera genérica:

n n k+1
∑ ik = k+1 + Términos de menor grado
j=1

Donde k≥0
Ejemplo: para k=0
n n0+1
∑i= 0
0+1
=n
j=1
Ejemplo hacer: para k=1, k=2
Análisis de los Algoritmos

Ejemplo.

1 For i=1 to n Pasos Frecuencia


2 For j=i to n 1 n+1
3 x=x+1 n2 (n+1) + 1
2
2
4 End for
3 n2 (n+1)
5 End for 2
4 n2 (n+1)
2
5 n

3 n2 (n+1) + 2n + 2
n n n n 2

∑ 1 ∑ i = ∑ n x i = n ∑i = n n (n+1)
2
i=1 j=i i=1 i=1
Análisis de los Algoritmos

Ejemplo. Hacer el algoritmo para imprimir el n-enésimo numero


de la serie Fibonaci. Realizar el conteo del algoritmo.

Fibonaci: (0,1,2,3,5,8,13,21,…..n)
Fn=Fn-1 + Fn-2 para n ≥2
Se conocen 2 valores iniciales
F0 = 0 y F1=1

Mas ejemplos.
Análisis de los Algoritmos

Ejercicios.

a) Graficar: O(n), O(n2), O(n3), O(2n), O(logn), O(nlogn)


b) Calcular el tiempo para:
for i=1 to n
for j=i to n/2
x=x+1
end for
end for

Vous aimerez peut-être aussi