Está en la página 1de 4

2.

Calcula la complejidad de los siguientes algoritmos:


2.1.

i=1
Mientras (i <= n)
j=1
Mientras (j <= n)
j=j*2
Fin _ mientras
i=i+1
Fin_Mientras
Complejidad del algoritmo:
Primero analizaremos la complejidad de cada uno de los bucles del
cdigo (consta de dos bucles: interno y externo):
Bucle externo:
Mediante la tabla siguiente observaremos los valores que toma
i en cada iteracin:
i
1
2
3
4
5
6
7
8
9
10
11
12
.
.
.
n-1
n

i=i+1
1
2
3
4
5
6
7
8
9
10
11

Y notamos que el nmero de


iteraciones es directamente proporcional al
recorrido hasta n del bucle, entonces,
tenemos una funcin de eficiencia f1(n) = n.
Por lo tanto, la complejidad del bucle externo
es O(f1(n))=n.

.
.
.
i=i
i=i+1

Bucle interno:
Mediante la tabla siguiente observaremos los valores que toma
j en cada iteracin:

j
1
2
3
4
5
6
7
8
9
10
11
12
.
.
.
n-1
n

j=j*2
1
2
4
8
16
32
64
128
256
512
1024
2048
.
.
.
j=(j1)*2
j=j*2

Ahora, notamos que el bucle se lleva a


cabo 2 ITERACIONES =log2n porque en el bucle
valor de i se dobla en cada iteracin, de este
modo podemos determina una eficiencia
f2(n)= log2n y una complejidad del bucle
interno O(f2(n))= log2n

Por lo tanto, como el cdigo es un bucle anidado, entonces la


complejidad del cdigo es:
O(n)=O(f1(n))* O(f2(n))=n*log2n= nlog2n.
(Sabemos: log2n< n< nlog2n< n2)

O(n)= nlog2n

2.2.

i=1
Mientras (i <= 10)
j=1
Mientras (j <= 10)
j=j+1
Fin _ mientras
i=i+2
Fin_Mientras
Complejidad del algoritmo:
Primero analizaremos la complejidad de cada uno de los bucles del
cdigo (consta de dos bucles: interno y externo):
Bucle externo:
Mediante la tabla siguiente observaremos los valores que toma
i en cada iteracin:
i
1
2
3
4
5
6
7
8
9
10

i=i+2
1
3
5
7
9
11
13
15
17
19

Notamos que el bucle se lleva a cabo desde


i=1 hasta n2-1 iteraciones con n=10,
entonces observamos que la eficiencia es
f(n)=n2-1 y su complejidad es
O(f(n))=O(n2-1)=n2 , porque estamos
evaluando el peor caso.

Bucle interno:
Mediante la tabla siguiente observaremos los valores que toma
j en cada iteracin:

j
1
2
3
4
5
6
7
8
9
10

j=j+1
1
2
3
4
5
6
7
8
9
10

Y notamos que el nmero de iteraciones es


directamente proporcional al recorrido
hasta 10 del bucle, entonces, tenemos una
funcin de eficiencia constante f2(n) = 10.
Por lo tanto, la complejidad del bucle
externo es O(f2(n))=O(1)=1 por ser
constante.

Por lo tanto, como el cdigo es


un bucle anidado, entonces la complejidad
del cdigo es:
O(n)=O(f1(n))* O(f2(n))=O(n2-1)*O(1)= n2*1=n2.
O(n)=n2.

También podría gustarte