lunes, 10 de junio de 2013

¿Que es un algoritmo?

Artículo perteneciente a la sección de Algoritmos
Artículo relacionado con Historia de la computación

Si eres nuevo en el campo de la programación estarás ya aburrido de oír siempre la palabra algoritmo y no saber que significa, tranquilo que a todos nos ha pasado.

Simplificando mucho el concepto, algoritmo es la descripción formal de como hacer una tarea concreta. Si nos ceñimos a esta descripción una receta de cocina podría ser un algoritmo (de hecho, a mi parecer lo es) y no os ha de extrañar que muchas cosas de nuestra vida cotidiana (como  por ejemplo seguir las instrucciones para montar un mueble ) se puedan entender como algoritmos  debido a que el concepto de algoritmo no proviene de la informática sino de Musa al-Juarismi, un pensador árabe del siglo IX.

En el caso concreto que nos atañe, se define algoritmo dentro de la programación como el conjunto finito de instrucciones secuenciales espaciadas en el tiempo que permiten transformar un conjunto finito de datos de entrada en un conjunto finito de resultados a la salida. No es más que la receta de cocina para resolver problemas de programación concretos.

La gracia de los algoritmos reside en que cada algoritmo, independientemente de la implementación que hagamos de el, tiene asociada una complejidad de cálculo. Esto quier decir que sin implementar ni una sola linea de código podemos saber si el cálculo se hará lento , muy lento o inviable a medida que el conjunto de datos de entrada vaya creciendo. Esto a promovido que grandes informáticos teóricos hayan dedicado sus esfuerzos a pensar nuevas maneras de realizar tareas ya conocidas de forma más eficiente (el ejemplo más claro de esto es la ingente cantidad de algoritmos de búsqueda y ordenamiento que existen).

Por desgracia, en muchas ocasiones los programadores nos centramos en mejorar la implementación de nuestro código, usando código con threads o trozos en ensamblador y no recordamos que lo principal es que el algoritmo sea eficiente para el tamaño de datos con el que vamos trabajar. Además se ha de tener en cuenta que una buena elección de algoritmo va a permitir mantener la calidad de código estable ya que no nos obligará a usar optimizaciones poco mantenibles para mantener el rendimiento.

En breve os iré colgando algoritmos típicos para que veáis con ejemplos lo que os quiero explicar.

Espero que os haya gustado,

Nos vemos
LordPakusBlog

0 comentarios :

Publicar un comentario

Entradas populares