Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado; se implementan en forma de sentencias en algún lenguaje de programación. De esta manera, la forma de escribir los algoritmos depende del lenguaje de programación, y del paradigma usado. Estos son los algoritmos que pueden ser interpretados por una computadora y así ser ejecutados.

Los algoritmos también pueden representarse gráficamente empleando diagramas de flujo o formas similares. De esta manera, son fácilmente comprensibles, especialmente para personas que no son programadores. También, de esta manera, los algoritmos son más “universales”, pues no dependen de un lenguaje de programación específico. También pueden escribirse en pseudocódigo, lo que también los hace fáciles de entender.

Se hacen intentos para que las computadoras interpreten y ejecuten los diagramas de flujo y los pseudocódigos, pero no logran la flexibilidad, potencia y velocidad de los algoritmos puramente escritos en un lenguaje de programación específico. Un algoritmo también puede expresarse en lenguaje natural, aunque esto puede traer ambigüedades e interpretaciones erróneas (la ambigüedad es propia del lenguaje humano).

Los algoritmos, para llegar a ser tales deben reunir ciertas características. Una de ellas es que los pasos que deben seguirse deben estar estrictamente descritos, cada acción debe ser precisa, y debe ser general, es decir, que pueda ser aplicable a todos los elementos de una misma clase. Es de gran importancia aclarar que los algoritmos en sí mismos no resuelvan problemas, se resuelven gracias al producto de ejercer las operaciones dictadas por el algoritmo, se puede decir que es por el planteamiento mismo.


Google