Está en la página 1de 2

Eficiencia de un algoritmo

Raramente existe un nico algoritmo para resolver un problema determinado.


Cuando se comparan dos algoritmos diferentes que resuelven el mismo problema,
normalmente se encontrar que un algoritmo es un orden de magnitud ms
eficiente que el otro. En este sentido, lo importante es que el programador sea
capaz de reconocer y elegir el algoritmo ms eficiente.

Entonces, qu es eficiencia? La eficiencia de un algoritmo es la propiedad
mediante la cual un algoritmo debe alcanzar la solucin al problema en el tiempo
ms corto posible o utilizando la cantidad ms pequea posible de recursos fsicos
y que sea compatible con su exactitud o correccin. Un buen programador
buscar el algoritmo ms eficiente dentro del conjunto de aquellos que resuelven
con exactitud un problema dado.

Cmo medir la eficiencia de un algoritmo o programa informtico? Uno de los
mtodos ms sobresalientes es el anlisis de algoritmos, que permite medir la
dificultad inherente de un problema. Los restantes captulos utilizan con frecuencia
las tcnicas de anlisis de algoritmos siempre que estos se disean. Esta
caracterstica le permitir comparar algoritmos para la resolucin de problemas en
trminos de eficiencia. Aunque las mquinas actuales son capaces de ejecutar
millones de instrucciones por segundo, la eficiencia permanece como un reto o
preocupacin a resolver. Con frecuencia, la eleccin entre algoritmos eficientes e
ineficientes puede mostrar la diferencia entre una solucin prctica a un problema
y una no prctica. En los primeros tiempos de la informtica moderna (dcadas de
los 60 a los 80), las computadoras eran muy lentas y tenan una capacidad de
memoria pequea.

Los programas tenan que ser diseados cuidadosamente para hacer uso de los
recursos escasos, como almacenamiento y tiempo de ejecucin. Los
programadores gastaban horas intentando recortar radicalmente segundos a los
tiempos de ejecucin de sus programas o intentando comprimir
los programas en un pequeo espacio en memoria utilizando todo tipo de
tecnologas de comprensin y reduccin de tamao. La eficiencia de un programa
se meda en aquella poca como un factor dependiente del binomio espacio-
tiempo.

Hoy, la situacin ha cambiado radicalmente. Los costes del hardware han cado
drsticamente, mientras que los costes humanos han aumentado
considerablemente. El tiempo de ejecucin y el espacio de memoria ya no son
factores crticos como lo fueron anteriormente. Hoy da, el esfuerzo considerable
que se requera para conseguir la eficiencia mxima no es tan acusado, excepto
en algunas aplicaciones como, por ejemplo, sistemas en tiempo real con factores
crticos de ejecucin. Pese a todo, la eficiencia sigue siendo un factor decisivo en
el diseo de algoritmos y construccin posterior de programas.

Existen diferentes mtodos con los que se trata de medir la eficiencia de los
algoritmos; entre ellos, los que se basan en el nmero de operaciones que debe
efectuar un algoritmo para realizar una tarea; otros mtodos se centran en tratar
de medir el tiempo que se emplea en llevar a cabo una determinada tarea, ya que
lo importante para el usuario final es que sta se efecte de forma correcta y en el
menor tiempo posible. Sin embargo, estos mtodos presentan varias dificultades,
ya que cuando se trata de generalizar la medida hecha, sta depende de factores
como la mquina en la que se efectu, el ambiente del procesamiento y el tamao
de la muestra, entre otros factores.

También podría gustarte