Sunteți pe pagina 1din 2

Tipos de Anlisis: La eficiencia de los

algoritmos.

Eficiencia
Se puede definir a la eficiencia como una relacin, entre los recursos utilizados (tiempo,
memoria) en la elaboracin de un proyecto, y los logros conseguidos en el mismo. Es
decir, se es eficiente cuando se utilizan los recursos de manera ms adecuada y en
menor cantidad para lograr el objetivo. O en otros trminos, lograr completar ms
objetivos con menos recursos.

NOTA: La eficacia no es eficiencia. Al ser eficaz solo importa la consecucin del


objetivo, mas no los medios empleados.

El anlisis de un algoritmo puede clasificarse por la eficacia


esperada en cada uno de ellos. Se tiene:

Por el Mejor Caso, donde el programa realiza el trabajo en condiciones ptimas. (Se
descarta por ser demasiado optimista).
Por el Caso Medio, un caso difcil de determinar, debido a factores como la
probabilidad del uso de determinadas entradas (inputs).
Por el Peor Caso, el peor escenario de ejecucin posible.

Ventajas de cada tipo de anlisis.


Por el mejor Caso:
Normalmente no es significativo plantearse que el problema tenga una solucin trivial,
es decir, que el programa no ejecute ninguna operacin para hallar la solucin, por ser
esta muy evidente.
Por el caso medio:
Para estimar como se comportara tpicamente un algoritmo concreto, se debe ejecutar
repetidas veces el mismo (considerando todas las entradas diferentes). Lastimosamente,
en una aplicacin real no se conoce si todas las entradas tienen la misma probabilidad
de ser ingresadas. Tambin, en muchas situaciones no se conocer de antemano la
distribucin de los datos, por lo que este tipo de anlisis pierde eficacia. Si se conoce
esa distribucin, se debe hacer un mejor anlisis y diseo para el algoritmo.

En el caso de no conocerse la distribucin de los datos de antemano, y sus posibles


valores, se debe considerar el peor caso.

Por el peor caso:


Considerando el peor escenario es posible acotar el tiempo de ejecucin del algoritmo.
Adems, si analizamos al algoritmo de esta manera, estamos seguros de que cuando
menos se desempeara de esa manera.

Ejemplos de anlisis:
1. Se tiene un Array de m x n que tiene almacenado m*n valores, encotrar la
posicin de un valor k. Suponiendo que el porgrama se ejecuta una sola vez.
Podemos hablar de caso mejor, peor e intermedio.

MEJOR CASO: El valor est almacenado en la posicin 1 x 1.

PEOR CASO: El valor est almacenado en la posicin m x n.

CASO INTERMEDIO: El valor est en una posicin aleatoria entre 1 x 1 y m x n.

2. Sea A una lista de n elementos (A1, A2, A3 An ). Ordenar los elementos de


acuerdo a los siguientes parmetros:
2.1.Ascendente: A1 <= A2 <= A3 <= An
2.2.Descendente: A1 >= A2 >= A3 >= An

MEJOR CASO: Los elementos estn ordenados.

PEOR CASO: Los elementos estn ordenados de manera inversa.

CASO INTERMEDIO: Elementos posicionados aleatoriamente.

S-ar putea să vă placă și