Top Banner
Instituto Politécnico Nacional. Escuela Superior de Cómputo. Unidad de Aprendizaje: Análisis de algoritmos. Titular: Edgardo Adrián Franco Martínez. Grupo: 3CM5. Alumno: Antonio David Reyna Martínez. Ejercicios 01: “Complejidad de los algoritmos”.
30

Ejercicios1-Complejidad de Los Algoritmos

Jan 15, 2016

Download

Documents

David Reyna

Algunos ejercicios sobre complejidad de algoritmos
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ejercicios1-Complejidad de Los Algoritmos

Instituto Politécnico Nacional.

Escuela Superior de Cómputo.

Unidad de Aprendizaje:Análisis de algoritmos.

Titular: Edgardo Adrián Franco Martínez.

Grupo: 3CM5.

Alumno: Antonio David Reyna Martínez.

Ejercicios 01: “Complejidad de los algoritmos”.

Page 2: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 2 de 27

A. Para los siguientes 5 algoritmos determine la función de complejidad temporal y espacial.

1.for(i=1;i<n;i++)for(j=0;j<n-1;j++){

temp = A[j];A[j] = A[j+1];A[j+1] = temp;

}

for(i=1;i<n;i++)for(j=0;j<n-1;j++){

temp = A[j];A[j] = A[j+1];A[j+1] = temp;

}

1 [Asignación].(n-1)+1 [Comparaciones].(n-1) [Incrementos]

n-1 [Asignaciones].(n-1)[(n-1)+1] [Comparaciones].(n-1)(n-1) [Incrementos]

(n-1)(n-1) [Asignaciones].(n-1)(n-1) [Asignaciones].(n-1)(n-1) [Asignaciones].

(n-1)[(n-1)+1] [Saltos].

(n-1)+1 [Saltos].

Total: 1+n+n-1+n-1+n2-n+n2-2n+1+ n2-2n+1+ n2-2n+1+ n2-2n+1 +n2-n+n = 6n2-6n+3 instrucciones

Función de complejidad temporal: 6n2-6n+3 ≈O(n2)

nInstrucciones

0 31 310 543100 59403500 14970031000 5994003

Page 3: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 3 de 27

for(i=1;i<n;i++)for(j=0;j<n-1;j++){

temp = A[j];A[j] = A[j+1];A[j+1] = temp;

}

1 [Variable ‘i’].1 [Variable ‘j’].

1 [Variable ‘temp’].

n [Variables del arreglo ‘A’].

Total: 1+1+1+n = n+3 celdas de memoria

Función de complejidad espacial: n+3 ≈O(n)

nCeldas de memoria.

0 31 410 13100 103500 5031000 1003

Page 4: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 4 de 27

2.polinomio=0;for(i=0;i<=n;i++){

polinomio=polinomio*z + A[n-i];}

polinomio=0;

for(i=0;i<=n;i++){

polinomio=polinomio*z + A[n-i];}

1 [Asignación].

1 [Asignación].

(n+2) [Comparaciones].

(n+1) [Incrementos].(n+1) [Asignaciones].

(n+2) [Saltos].

Total: 1+1+n+2+n+1+n+1+n+2 = 4n+8 instrucciones

Función de complejidad temporal: 4n+8 ≈O(n)

nInstrucciones

0 81 1210 48100 408500 20081000 4008

Page 5: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 5 de 27

polinomio=0;

for(i=0;i<=n;i++){

polinomio=polinomio*z + A[n-i];}

1 [Variable ‘polinomio’].

1 [Variable ‘i’].

1 [Variable ‘z’].

n+1 [Variables del arreglo ‘A’].

Total: 1+1+1+n+1 = n+4 celdas de memoria

Función de complejidad espacial: n+4 ≈O(n)

nCeldas de memoria.

0 41 510 14100 104500 5041000 1004

Page 6: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 6 de 27

3.for i = 1 to n dofor j = 1 to n do

C[i,j] = 0;for k = 1 to n do

C[i,j] = C[i,j] + A[i,k]*B[k,j];

for i = 1 to n do

for j = 1 to n doC[i,j] = 0;

for k = 1 to n doC[i,j] = C[i,j] + A[i,k]*B[k,j];

1 [Asignación].n+1 [Comparaciones].

n [Asignaciones].n(n+1) [Comparaciones].n(n) [Asignaciones].

n(n) [Asignaciones].n[n(n+1)] [Comparaciones].

n[n(n)] [Asignaciones].

n[n(n+1)] [Saltos].n[n(n)] [Incrementos].

n(n+1) [Saltos].n(n) [Incrementos].

(n+1) [Saltos].(n) [Incrementos].

Total: 1+n+1+n+n2+n+n2+n2+n3+n2+n3+n3+n3+n2+n2

+n2+n+n+n+1= 4n3+7n2+6n+3 instrucciones

Función de complejidad temporal: 4n3+7n2+6n+3 ≈O(n3)

nInstrucciones

0 31 2010 4763100 4070603500 5017530031000 4007006003

Page 7: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 7 de 27

for i = 1 to n do

for j = 1 to n doC[i,j] = 0;

for k = 1 to n doC[i,j] = C[i,j] + A[i,k]*B[k,j];

1 [Variable “i”].1 [Variable “j”].n2 [Variables de la matriz “C”].1 [Variable “k”].

n2 [Variables de la matriz “B”].

n2 [Variables de la matriz “A”].

Total: 1+1+n2+1+n2+n2= 3n2+3 celdas de memoria.

Función de complejidad espacial: 3n2+3 ≈O(n2)

nCeldas de memoria.

0 31 610 303100 30003500 7500031000 3000003

Page 8: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 8 de 27

4. anterior = 1;actual = 1;while (n>2){

aux = anterior + actual;anterior = actual;actual = aux;n = n - 1;

}

anterior = 1;actual = 1;while (n>2){

aux = anterior + actual;anterior = actual;actual = aux;n = n - 1;

}

1 [Asignación].1 [Asignación].n-1 [Comparaciones].

n-2 [Asignaciones].n-2 [Asignaciones].n-2 [Asignaciones].n-2 [Decrementos].n-1 [Saltos].

Total: 1+1+n-1+n-2+n-2+n-2+n-2+n-2= 6n-8 instrucciones.

Función de complejidad temporal: 6n-8 ≈O(n)

nInstrucciones.

0 -81 -210 52100 592500 29921000 5992

Page 9: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 9 de 27

anterior = 1;actual = 1;while (n>2){

aux = anterior + actual;anterior = actual;actual = aux;n = n - 1;

}

1 [Variable “anterior”].1 [Variable “actual”].

1 [Variable “aux”].

Total: 1+1+1= 3 celdas de memoria.

Función de complejidad espacial: 3 ≈O(3)

nCeldas de memoria.

0 31 310 3100 3500 31000 3

Page 10: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 10 de 27

5. for (i = n - 1,j=0;i>=0;i--,j++)s2[j]= s[i];

for (i = 0,i<n;i++)s[i]= s2[i];

for (i = n - 1,j=0;i>=0;i--,j++)s2[j]= s[i];

for (i = 0,i<n;i++)s[i]= s2[i];

n [Asignaciones].

n [Asignaciones].

1 [Asignación].1 [Asignación].n+1 [Comparaciones].n [Decrementos].n [Incrementos].

1 [Asignación].n+1 [Comparaciones].n [Incrementos].

n+1 [Saltos].

n+1 [Saltos].

Total: 1+1+n+1+n+n+n+n+1+1+n+1+n+n+n+1= 9n+7 instrucciones.

Función de complejidad temporal: 9n+7 ≈O(n)

nInstrucciones.

0 71 1610 97100 907500 45071000 9007

Page 11: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 11 de 27

for (i = n - 1,j=0;i>=0;i--,j++)s2[j]= s[i];

for (i = 0,i<n;i++)s[i]= s2[i];

n [Variables del arreglo “s2”].

1 [Variable “i”].1 [Variable “j”].

n [Variables del arreglo “s”].

Total: 1+1+n+n= 2n+2 celdas de memoria.

Función de complejidad espacial: 2n+2 ≈O(n)

nCeldas de memoria.

0 21 410 22100 202500 10021000 2002

Page 12: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 12 de 27

B. Para los siguientes 3 algoritmos determine las funciones de complejidad temporal y espacial, estableciendo 3 casos de entrada distintos para cada algoritmo, determine de que depende el número de operaciones para cada algoritmo, i.e. cuál es la variable a considerar en cada caso y en que afecta.

1.

Para un arreglo de 10 elementos.

Caso 1: Sea A un arreglo cuyos elementos están ordenados de forma totalmente descendente como se muestra a continuación.

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]100 78 56 40 38 25 20 19 8 3

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;while(i<=n)

if(A[i] > mayor1)mayor2 = mayor1;mayor1 = A[i];

else if (A[i] > mayor2)mayor2 = A[i];

i = i + 1;return = mayor1 * mayor2;fin

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;while(i<=n)

if(A[i] > mayor1)mayor2 = mayor1;mayor1 = A[i];

else if (A[i] > mayor2)mayor2 = A[i];

i = i + 1;

return = mayor1 * mayor2;fin

1+1 [Comparación+ salto en verdadero].1 [Asignación].1 [Asignación].

1 [Asignación].(n-2)+1 [Comparaciones].(n-2)+n [Comparaciones + saltos en falso].

(n-2)+n [Comparaciones + saltos en falso].n-2 [Incrementos].(n-2)+1 [Saltos en verdadero+ salto en falso ].1 [Asignación].

Total: 2+1+1+1+n-1+2n-2+2n-2+n-2+n-1+1= 7n-2 instrucciones.

Función de complejidad temporal: 7n-2 ≈O(n)

nInstrucciones.

0 -21 510 68100 698500 3498

Page 13: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 13 de 27

Total: 2+1+1+1+n-1+2n-2+2n-2+n-2+n-1+1= 7n-2 instrucciones.

Función de complejidad temporal: 7n-2 ≈O(n)

nInstrucciones.

0 -21 510 68100 698500 3498

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;while(i<=n)

if(A[i] > mayor1)mayor2 = mayor1;mayor1 = A[i];

else if (A[i] > mayor2)mayor2 = A[i];

i = i + 1;

return = mayor1 * mayor2;fin

n [Variables del arreglo “A” ].1 [Variable “mayor1” ].1 [Variable “mayor2” ].

1 [Variable “i” ].

Total: n+1+1+1= n+3 celdas de memoria.

Función de complejidad espacial: n+3 ≈O(n)

nCeldas de memoria.

0 31 410 13100 103

Page 14: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 14 de 27

Caso 2: Sea A un arreglo cuyos elementos están ordenados de forma totalmente ascendente como se muestra a continuación.

Total: n+1+1+1= n+3 celdas de memoria.

Función de complejidad espacial: n+3 ≈O(n)

nCeldas de memoria.

0 31 410 13100 103

Page 15: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 15 de 27

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]1 5 12 27 31 46 58 76 80 93

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;while(i<=n)

if(A[i] > mayor1)mayor2 = mayor1;mayor1 = A[i];

else if (A[i] > mayor2)mayor2 = A[i];

i = i + 1;

return = mayor1 * mayor2;fin

1 + 1 [Comparación + salto en falso].

1 [Asignación].1 [Asignación].1 [Asignación].(n-2)+1 [Comparaciones].(n-2)+n [Comparaciones + saltos en verdadero].

n-2 [Incrementos].(n-2)+1 [Saltos en verdadero+ salto en falso ].1 [Asignación].

Total: 2+1+1+1+n-1+2n-2+n-2+n-2+n-2+n-1+1= 7n-4 instrucciones.

Función de complejidad temporal: 7n-4 ≈O(n)

nInstrucciones.

0 -41 310 66100 696500 34961000 6996

n-2 [Asignaciones].n-2 [Asignaciones].

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;

Page 16: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 16 de 27

Caso 3: Sea A un arreglo cuyos elementos tienen el orden siguiente.

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;

n [Variables del arreglo “A” ].

1 [Variable “mayor1” ].1 [Variable “mayor2” ].1 [Variable “i” ].

nCeldas de memoria.

0 31 410 13100 103500 5031000 1003

Total: n+1+1+1= n+3 celdas de memoria.

Función de complejidad espacial: n+3 ≈O(n)

Page 17: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 17 de 27

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]100 5 32 40 50 71 75 80 88 91

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;while(i<=n)

if(A[i] > mayor1)mayor2 = mayor1;mayor1 = A[i];

else if (A[i] > mayor2)mayor2 = A[i];

i = i + 1;

return = mayor1 * mayor2;fin

1 + 1 [Comparación + salto en verdadero].1 [Asignación].1 [Asignación].

1 [Asignación].(n-2)+1 [Comparaciones].(n-2)+n [Comparaciones + saltos en falso].

n-2 [Incrementos].(n-2)+1 [Saltos en verdadero+ salto en falso].1 [Asignación].

Total: 2+1+1+1+n-1+2n-2+n-2+n-2+n-2+n-1+1= 7n-4 instrucciones.

Función de complejidad temporal: 7n-4 ≈O(n)

nInstrucciones.

0 -41 310 66100 696500 34961000 6996

(n-2) [Comparaciones].n-2 [Asignaciones].

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;

Page 18: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 18 de 27

2.

func Producto2Mayores(A,n)if(A[1] > A[2])

mayor1 = A[1];mayor2 = A[2];

elsemayor1 = A[2];mayor2 = A[1];

i = 3;

n [Variables del arreglo “A” ].

1 [Variable “mayor1” ].1 [Variable “mayor2” ].1 [Variable “i” ].

nCeldas de memoria.

0 31 410 13100 103500 5031000 1003

Total: n+1+1+1= n+3 celdas de memoria.

Función de complejidad espacial: n+3 ≈O(n)

func OrdenamientoIntercambio(a,n)for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

Page 19: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 19 de 27

Para un arreglo de 10 elementos.

Caso 1: Sea A un arreglo cuyos elementos están ordenados de forma totalmente ascendente como se muestra a continuación.

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]1 5 12 27 31 46 58 76 80 93

func OrdenamientoIntercambio(a,n)for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

func OrdenamientoIntercambio(a,n)

for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)

if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

}

fin

1 [Asignación].n [Comparaciones].n-1 [Incrementos].

1 [Asignación].[(n+1)*(n/2)]-1 [Comparaciones].[(n+1)*(n/2)]-2 [Incrementos].

[(n+1)*(n/2)]-2 [Comparaciones].

[(n+1)*(n/2)]-1 [Saltos].n [Saltos].

nInstrucciones.

0 -51 210 245100 20495500 5024951000 2004995

Total: 1+n+n-1+1+[(n2+n)/2]-1+[(n2+n)/2]-2+[(n2+n)/2]-2+[(n2+n)/2]-1+n= 2n2+5n-5 instrucciones.

Función de complejidad temporal: 2n2+5n-5 ≈O(n2)

Page 20: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 20 de 27

func OrdenamientoIntercambio(a,n)

for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)

if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

}fin

1 [Variable “i”].

n [Variables del arreglo “a”].

nCeldas de memoria.

0 21 310 12100 102500 5021000 1002

Total: 1+1+n = n+2 celdas de memoria.

Función de complejidad espacial: n+2 ≈O(n)

1 [Variable “j”].

Page 21: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 21 de 27

Caso 2: Sea A un arreglo cuyos elementos están ordenados de forma totalmente descendente como se muestra a continuación.

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]100 78 56 40 38 25 20 19 8 3

nInstrucciones.

0 -111 -110 404100 35639500 878239

func OrdenamientoIntercambio(a,n)

for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)

if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

}

fin

1 [Asignación].n [Comparaciones].n-1 [Incrementos].

1 [Asignación].[(n+1)*(n/2)]-1 [Comparaciones].[(n+1)*(n/2)]-2 [Incrementos].

[(n+1)*(n/2)]-2 [Comparaciones].

[(n+1)*(n/2)]-1 [Saltos].n [Saltos].

[(n+1)*(n/2)]-2 [Asignaciones].[(n+1)*(n/2)]-2 [Asignaciones].[(n+1)*(n/2)]-2 [Asignaciones].

Total: 1+n+n-1+1+[(n2+n)/2]-1+[(n2+n)/2]-2+[(n2+n)/2]-2+[(n2+n)/2]-2+[(n2+n)/2]-2+[(n2+n)/2]-2+[(n2+n)/2]-1+n= (7/2)n2+(13/2)n-11 instrucciones.

Función de complejidad temporal: (7/2)n2+(13/2)n-11 ≈O(n2)

Page 22: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 22 de 27

nInstrucciones.

0 -111 -110 404100 35639500 878239

func OrdenamientoIntercambio(a,n)

for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)

if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

}fin

1 [Variable “i”].

n [Variables del arreglo “a”].

nCeldas de memoria.

0 31 410 13100 103500 5031000 1003

Total: 1+1+n+1 = n+3 celdas de memoria.

Función de complejidad espacial: n+2 ≈O(n)

1 [Variable “j”].

1 [Variable “temp”].

Page 23: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 23 de 27

Caso 3: Sea A un arreglo cuyos elementos están ordenados de la siguiente manera.

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]100 78 110 115 137 142 158 169 173 181

nInstrucciones.

0 -21 510 248100 20498500 502498

func OrdenamientoIntercambio(a,n)

for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)

if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

}

fin

1 [Asignación].n [Comparaciones].n-1 [Incrementos].

1 [Asignación].[(n+1)*(n/2)]-1 [Comparaciones].[(n+1)*(n/2)]-2 [Incrementos].

[(n+1)*(n/2)]-2 [Comparaciones].

[(n+1)*(n/2)]-1 [Saltos].n [Saltos].

1 [Asignación].1 [Asignación].1 [Asignación].

Total: 1+n+n-1+1+[(n2+n)/2]-1+[(n2+n)/2]-2+[(n2+n)/2]-2+1+1+1 +[(n2+n)/2]-1+n= 2n2+5n-2 instrucciones.

Función de complejidad temporal: 2n2+5n-2 ≈O(n2)

Page 24: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 24 de 27

nInstrucciones.

0 -21 510 248100 20498500 502498

func OrdenamientoIntercambio(a,n)

for (int i=1; i<n; i++)

for (int j=i+1; j<=n;j++)

if (a[ j ] < a[ i ]){

temp=a[ i ];a[ i ]=a[ j ];a[ j ]=temp;

}fin

1 [Variable “i”].

n [Variables del arreglo “a”].

nCeldas de memoria.

0 31 410 13100 103500 5031000 1003

Total: 1+1+n+1 = n+3 celdas de memoria.

Función de complejidad espacial: n+2 ≈O(n)

1 [Variable “j”].

1 [Variable “temp”].

Page 25: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 25 de 27

3.

Caso 1: n=m.

Si n=m => Se entra al ciclo una vez. =>k=1

Caso 2: n=25, m=48

Si n=25, m=48 => Se entra al ciclo 3 veces.=>k=3

Caso 3: n=89, m=27

Si n=25, m=48 => Se entra al ciclo 4 veces.=>k=4

Si el ciclo se ejecutará k veces.

func MaximoComunDivisor(m, n){

a=max(n,m);b=min(n,m);residuo=1;mientras (residuo > 0){

residuo=a mod b;a=b;b=residuo;

}MaximoComunDivisor=a;return MaximoComunDivisor;

}

func MaximoComunDivisor(m, n){

a=max(n,m);b=min(n,m);residuo=1;mientras (residuo > 0){

Page 26: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 26 de 27

Si el ciclo se ejecutará k veces.

func MaximoComunDivisor(m, n){

a=max(n,m);b=min(n,m);residuo=1;mientras (residuo > 0){

2 [Asignación + llamada a función].2 [Asignación + llamada a función].1 [Asignación].k+1 [Comparaciones].

k [Asignaciones].k [Asignaciones].k [Asignaciones].k+1 [Saltos].1 [Asignación].

nInstrucciones.

0 81 1310 58100 508500 25081000 5008

Total: 2+2+1+k+1+k+k+k+k+1+1 = 5k+8 instrucciones.

Función de complejidad temporal: 5k+8 ≈O(k)

func MaximoComunDivisor(m, n){

a=max(n,m);b=min(n,m);residuo=1;mientras (residuo > 0){

Page 27: Ejercicios1-Complejidad de Los Algoritmos

Análisis de algoritmos. Ejercicios 01: Complejidad de los algoritmos.

Antonio David Reyna Martínez. 3CM5.

Página 27 de 27

func MaximoComunDivisor(m, n){

a=max(n,m);b=min(n,m);residuo=1;mientras (residuo > 0){

1 [Variable “a”].1 [Variable “b”].1 [Variable “residuo”].

1 [Variable “MaximoComunDivisor”].

nCeldas de memoria.

0 41 410 4100 4500 41000 4

Total: 1+1+1+1= 4 celdas de memoria.

Función de complejidad espacial: 4 ≈O(4)