Está en la página 1de 19

COMPLEJIDAD

ALGORITMICA
PROGRAMACION III
INF - 131
Lic. Marcelo Aruquipa
2023

Lic. Marcelo Aruquipa


Introducción A
U IP
• Uno de los objetivos de desarrollar un programa es:
U Q
DE LA COMPUTADORA” A R
“UTILIZAR MENOS RECURSOS (TIEMPO Y MEMORIA)

O
Para alcanzar la solución.
L
C E
• A esto se denomina:
A R
“ALGORITMO EFICIENTE”
M
Lic. Marcelo Aruquipa
A
Eficiencia de un Algoritmo
P
U I
ALGORITMO
U Q
A R
O
Tiempo de ejecución
L
ANALISIS DE
C E f(x) CONJUNTO
DE

A R
EFICIENCIA
FUNCIONES

M A que conjunto ?
Lic. Marcelo Aruquipa
TENGO MI ALGORITMOA
IP
YA PUEDO CODIFICARLO?
U
U Q
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Análisis de EficienciaPA
U I
“Factor decisivo para el diseño del
algoritmo” U Q
R
ABuscar función que
A Priori
(Teórico)
L O represente al tiempo
de ejecución

C E
A R
A Posteriori
Calculo de tiempo en
forma práctica.
M (Experimental)
Estadísticas

Lic. Marcelo Aruquipa


Tamaño del problemaPA
U I
Q
• El tamaño de la entrada(numero de datos) de un
U
problema permitirá medir la complejidad de un algoritmo
R
Ala entrada
• Uso de recursos → tamaño de

L O
Nro de datos del problema
• E
Nro de dígitos de numero
C

• A R
Nro de elementos de un array
Nro de caracteres de una cadena
• M
Nro de llamadas a una función, recursos,etc.

Lic. Marcelo Aruquipa


Tiempo de Ejecución
A
Tamaño
U IP
de
entrada
U Q
A R
L O
PROGRAMA
Tiempo de Ejecución - Operaciones que realiza

C E
A R
M
Lic. Marcelo Aruquipa
Complejidad AsintóticaPA
U I
U Q
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Complejidad AsintóticaPA
U I
cg(n)
U Q
A R
L O f(n)

C E
A R
M
Lic. Marcelo Aruquipa
Ordenes de Complejidad
A
U IP
U Q
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Ordenes de Complejidad
A
Eficiente U IP
U Q
A R
Tratable

L O
C E
Intratable

A R
M
Lic. Marcelo Aruquipa
Ordenes de Complejidad
PA
U I
U Q
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Reglas para calcular T(n)
P A
U I
U Q
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Reglas para calcular T(n)
A
U IP
U Q
b) Bucle con evolución no lineal
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Reglas para calcular T(n)
P A
U I
U Q
A R
L O
C E
A R
M
Lic. Marcelo Aruquipa
Ejemplo 1
A
Suponiendo n como tamaño de la entrada:

Nro Codigo U
Frecuencia
IP
Linea
U Q
1
2
3
j = 1;
while((A[j] < c) && (j <n)){
j++; A R
1
n
n -1

4
}
if(A[j] == c)
L O 1
5
else
C E
return j; 1

A R return 0;
T(n)= 2n + 2

M
Por lo tanto T(n) ∈ O(n)

Lic. Marcelo Aruquipa


Ejemplo 2
A
Suponiendo n como tamaño de la entrada:
Nro Codigo U
Frecuencia
IP
Linea
U Q
1
2
3
for (int i = 0; i < n; i++) {
c = i;
while (c > 0) { A R log n
n
n-1
n-1
4
5
r++;

L O
c = c/2;
log n - 1
log n – 1
n-1
n-1

}
C
}
E
A R
Por lo tanto T(n) ∈ O(n log n)
T(n)= 3n log n – 3log n + 1

M
Lic. Marcelo Aruquipa
Ejemplo 3
A
Suponiendo n como tamaño de la entrada:

U IP
Nro
Linea
Código

U Q
Frecuencia

1
2
3
k = 0;
for(i = 1; i<= n; i++){
A
for(j = 1; j<= n*n; j++){
R n2 +1
1
n+1
n
4
5
L O
for(p = 1; p<= n*n*n; p++){
k++;
n3+1
n3
n2
n2
n
n

}
}
C E
}

A R T(n)=1 + (n+1) + n(n2 + 1) + n(n2)(n3+1) + n(n2)(n3)

M
Por lo tanto
T(n) = 2n6 + 2n2 + 2n + 2 ∈ O(nk); k>3 Complejidad polinomial

Lic. Marcelo Aruquipa


GRACIAS

Lic. Marcelo Aruquipa

También podría gustarte