Este documento analiza la eficiencia del algoritmo de ordenamiento por selección en los casos peor, mejor y promedio. Explica que en el peor caso, el costo es de O(n^2), mientras que en el mejor caso es de O(n) y en el caso promedio es O(n^2) también. Finalmente, provee ecuaciones generales para calcular la complejidad en cada caso.
1. ANÁLISIS
DE
ALGORITMOS
Y
COMPLEJIDAD
La
eficiencia
de
los
algoritmos
Gloria
Isabel
Bautista
Lasprilla.
bautistalasprilla.gloriaisabel@gmail.com
gbautista@unitecnologica.edu.co
gloria@utbvirtual.edu.co
2. Definición
Un algoritmo puede de ser lo más eficiente posible con independencia de
la plataforma Software/Hardware que se utilice.
Si el algoritmo es ya eficiente de por sí, más veloz será si se ejecuta en una
plataforma mucho más rápida.
Entonces, podemos afirmar que el responsable principal de la eficiencia (o
no) de un algoritmo es siempre el programador.
El análisis del costo computacional de los algoritmos se estima siempre en
el peor de los casos.
El caso promedio es difícil de establecer pues depende del contenido de
los datos de entrada.
El mejor de los casos es considerado un ideal que difícilmente se cumple.
3. Análisis
de
algoritmos
de
ordenamiento
Eficiencia
y
Complejidad
El
siguiente
ejercicio
analiza
el
algoritmo
sencillo
de
ordenamiento,
método
selección:
• En
el
peor
de
los
Casos
• En
el
mejor
de
los
Casos
• En
el
Caso
Intermedio
4. Análisis
del
método
selección
FOR
EXTERNO
INSTRUCCIÓN COSTO
i = 0 1
i <= n-‐1 n
+
1
i++ n
sm = i n
for interno n
*
for
interno
aux = A[sm] n
A[sm] = A[i] n
A[i] = aux n
2
+
6n
+
n
*
for interno
void seleccionsort (int A[],
int n)
{
int sm,
i,
j,
aux;
for (i
=
0;
i
<n-‐1;
i++)
{
sm =
i;
for(j
=
i+1;
j
<
n;
j++)
if(A[sm]
>
A[j])
sm =
j;
aux =
A[sm];
A[sm]
=
A[i];
A[i]
=
aux ;
}
}
5. FOR
INTERNO
INSTRUCCIÓN
COSTO
(Peor de
los
casos)
COSTO
(Mejor de
los
casos)
COSTO
(Caso
intermedio)
j
=
i
+
1 1 1 1
j
<=
n n
– (i+1)
+
1 n
– (i+1)
+
1 n
– (i+1)
+
1
j++ n
– i
+
1 n
– i
+
1 n
– i
+
1
if
(
) n
– i
+
1 n
– i
+
1 n
– i
+
1
sm =
j
n
– i
+
1 (n
– i
+
1)/2
Análisis
del
método
selección
Peor de
los
casos Mejor
de
los
casos Caso
intermedio
6
+
4
(n
– i) 5
+
3
(n
– i) 5
+
3
(n
– i)
+
(n
– i
+
1)
/
2
2
+
6n
+
n
*
for interno
6. Análisis
del
método
selección
El
peor
de
los
casos
å å å= =
-
=
ú
û
ù
ê
ë
é
+++
n
i
n
i
in
i1 1 1
4662
2102 2
++ nn
For interno,
el
peor
caso
6
+
4
(n
– i)
2
+
6n
+
n
*
for interno
Ecuación
general
7. Análisis
del
método
selección
El
mejor
de
los
casos
å å å= =
-
=
ú
û
ù
ê
ë
é
+++
n
i
n
i
in
i1 1 1
3562
2
2
19
2
3 2
++ nn
2
+
6n
+
n
*
for interno
Ecuación
general
For interno,
el
mejor
caso
5
+
3
(n
– i)
8. Análisis
del
método
selección
El
caso
intermedio
2
+
6n
+
n
*
for interno
Ecuación
general
å å å å= =
-
=
+-
=
ú
û
ù
ê
ë
é
++++
n
I
n
i
in
i
in
i1 1 1
1
1 2
1
3562
2
4
39
4
7 2
++ nn
For interno,
caso
intermedio
5
+
3
(n
– i)
+
(n
– i
+
1)
/
2