De manera genérica, un algoritmo es la secuencia de pasos para resolver un problema.
Un algoritmo es la definición de una serie de pasos organizados y finitos que describe el proceso que se debe seguir para dar solución a un problema específico. Son fundamentales en el mundo de la programación porque programar consiste básicamente en suministrar algoritmos, en un lenguaje de programación, que son capaces de resolver los problemas planteados en las aplicaciones.
La palabra algoritmo proviene del matemático árabe Al-Juarismi, cuyo nombre luego fue adaptado al latín con la palabra "Algorithmi". Este científico fue el autor, entre otros libros, de un tratado sobre diveros procesos matemáticos de álgebra y ecuaciones. Luego su nombre pasó a utilizarse en matemáticas para referirse a los algoritmos o a la algoritmia, que es el estudio de los algoritmos.
Más información:
Artículos destacados de Algoritmo:
Tipos de algoritmos
Los algoritmos se pueden clasificar de una manera general en dos tipos básicos:
- Cualitativos: Son los algoritmos que describen los pasos utilizando palabras.
- Cuantitativos: Son los algoritmos en los que se utilizan ya cálculos cálculos numéricos durante la definición del propio algoritmo.
Otra clasificación podría darse por el ámbito de uso de cada algoritmo:
- Computacionales: Los que están escritos para que sean resueltos por un ordenador o máquina de proceso.
- No computacionales: Estos algoritmos son los definidos de modo general, sin que sean destinados a ejecutarse en un ordenador.
Lenguajes Algorítmicos
Dado el caracter general de los algoritmos, éstos se puede expresar de miles de maneras: directamente con palabras del lenguaje común de las personas, pero también con diagramas e incluso en código en algún lenguaje de programación. Sin embargo, existen modos formales y estandarizados para expresión de los algoritmos.
Por tanto, un lenguaje algorítmico consiste en una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.
Tipos de Lenguajes Algorítmicos
Existen lenguajes específicos y estandarizados para expresar algoritmos. Se clasifican en:
- Gráficos: Consiste en escribir los algoritmos mediante una representación gráfica de las operaciones que deben realizarse para su consecución. El lenguaje más habitual aquí sería el diagrama de flujo.
- No Gráficos: También podemos representar los algoritmos con palabras, en lugar de utilizar gráficos. Esta descripción se realiza en un lenguaje intermedio llamado pseudocodigo, que permite especificar las operaciones de manera descriptiva que está mucho más cerca del propio lenguaje de programación.
¿Son necesarios los lenguajes algorítmicos?
Los lenguajes algoritmicos basan su utilidad en que son independientes de un lenguaje de programación particular. Al expresarse en diagramas o pseudocódigo podríamos usar esa definición del algoritmo para utilizarla en cualquier implementación ya de un lenguaje de programación. Además, los lenguajes algorítmicos son más fácil de entender a simple vista que el código fuente.
La necesidad o no de usar lenguajes algorítmicos depende ya de cada programador y su experiencia. Si el programador tiene poca experiencia puede resultar de ayuda realizar un paso intermedio, antes de ponerse a programar el algoritmo. Este paso intermedio sería expresarlo con un diagrama de flujo o pseudocódigo y nos ayudará a aclarar las ideas y tener más definidos los pasos del algoritmo, lo que ayudará en el momento que se deba programar.
Metodología para la creación de algoritmos
La creación de un algoritmo y su programación es una etapa del proceso de programar. Sin embargo, al principio del aprendizaje de la programación tenemos que ser bastante pausados y realizar otras etapas que nos permitirán analizar y comprobar el problema, para asegurarnos que todo va a salir como deseamos.
El proceso de programación y desarrollo de algoritmos, dado un problema determinado, sería el siguiente:
- Tomarse un tiempo para nalizar el problema
- Idear una solución y expresarla en un lenguaje intermedio, ya sean diagramas o textuales que nos permita definir un algoritmo
- Programar ese algoritmo usando ya un lenguaje de programación
- Por último, se debe ejecutar el programa para comprobar si se ha conseguido llegar a la solución del problema. Este proceso a menudo se realiza con diversas entradas de datos que garanticen que la solución va a funcionar en diversas situaciones, lo más variadas posible.
Sin embargo, esto es solo la punta del iceberg y detrás de la programación profesional en realidad hay una buena cantidad de disciplinas y los procesos son mucho más complejos, a medida que los problemas a resolver en los programas o aplicaciones se van haciendo mayores.
Ahora, por lo que respecta a la creación de los algoritmos, tenemos que definir varias fases.
Definición del problema
Esta fase generalmente nos la darán, entregando un enunciado del problema o una especificación de los requisitos que debe tener la solución para darse por buena. Esta definición debería ser detallada y precisa. Debe dejar muy claro qué es lo que el programa debe de realizar sin lugar a interpretaciones personales.
Análisis del problema
Una vez que se ha comprendido qué es lo que se debe realizar en el programa es necesario definir el flujo de datos, que incluye:
- Los datos de entrada del algoritmo
- La salida que debería producir el algoritmo
- Los métodos y fórmulas que necesitaremos para la realización de esas transformaciones desde la entrada a la salida
Podemos ponernos en el lugar del ordenador y pensar que el ordenador no puede deducir nada por si mismo, que no se haya especificado con código. Eso nos permitirá analizar qué es lo que necesitamos realizar y la secuencia de acciones para conseguir los resultados que se esperan.
Diseño del algoritmo
Por último es necesario construir correctamente la secuencia de pasos. Esta es la parte en la que colocamos las piezas del diagrama de flujo o bien escribimos las líneas del pseudocódigo. Estos pasos son los que luego se van a suministrar a la computadora, pero ya en un lenguaje de programación para resolver los problemas planteados en los enunciados.
Los pasos que debe tener un algoritmo requieren una serie de características para que se considere algoritmo válido o al menos un algoritmo bueno:
- Debe tener un punto de inicio bien definido.
- Los pasos deberían quedar claros y no dejar pie a dobles interpretaciones.
- Debe ser general, es decir, que sirva para resolver el problema en distintas situaciones que puedan tenerse de entrada.
- Debe ser finito, tanto en lo que respecta al tamaño (pasos a realizar) y el tiempo de ejecución.
Prueba
Una vez terminado se debe para comprobar si el algoritmo está bien hecho. No podemos probar si funciona realmente todavía, porque solamente lo hemos especificado por medio de un diagrama o pseudocódigo, pero al menos simular el funcionamiento. Para ello se tomarán datos específicos como entrada y se seguirá mentalmente el proceso del algoritmo, realizando a mano los cálculos oportunos en la secuencia de instrucciones y estructuras que defina el algoritmo. Esto lo haremos de modo que podamos obtener el resultado final, la salida, que nos indicará si es correcta o no.
Estas comprobaciones se tendrán que realizar con varios juegos de datos de entrada, de modo que se pueda deducir que la solución correcta es general a cualquier situación.
Depuración del algoritmo
En caso que no sea del todo correcto hay que hacer los ajustes necesarios en el algoritmo, en el proceso que se denomina depuración. Durante la depuración se solucionarán los problemas localizados y posteriormente se tendrá que pasar de nuevo a la etapa de prueba, para volver a hacer las comprobaciones pertienentes.
Crea artículos, recursos o comparte información sobre Algoritmo
Temas relacionados
Preguntas y respuestas de Algoritmo
Se han recibido 1 faqs en Algoritmo