Algoritmo es una serie de pasos para solucionar un problema
En ese sentido, un algoritmo tiene tres fases. El primero, tiene que ver con el planteamiento del problema u objetivo a alcanzar; el segundo, es la formulación de cada paso con el máximo nivel de abstracción posible; y el tercero es la valoración si el algoritmo cumple o no el objetivo propuesto.
Un algoritmo funciona de forma cíclica, es decir, repite los pasos cada vez que debe ejecutarse, es finito y no es ambiguo.
Características de los algoritmos
- Finito. Tiene un principio, desarrolla una serie de pasos y tiene un final. Un algoritmo no puede ser infinito, debe finalizar y cumplir un objetivo puntual.
- No es ambiguo. Un algoritmo no debe funcionar para un contexto y otro a la vez, el algoritmo, debe estar diseñado para ejecutarse específicamente en el contexto donde necesita la solución. Cada paso debe tener una finalidad particular.
- Cumple un único objetivo. Un algoritmo no está diseñado para solucionar dos problemas o alcanzar dos o más objetivos. Por pequeño que sea, un algoritmo debe resolver un único problema o alcanzar un único objetivo.
¿Cómo representamos los algoritmos?
En la industria de la tecnología, los algoritmos se representan a través de diagramas de flujo. Sin embargo, existen tareas específicas muy estándar que no necesitan ser representadas a través de un diagrama y el desarrollador aplica la lógica del algoritmo directamente en el código que esté desarrollando.
Existen otras maneras de representar algoritmos y es a través de pseudocódigo. Esta manera, representa los algoritmos a muy alto nivel y expresa de manera compacta la manera en la que debe funcionar un componente de software o programa.
Conclusión
Antes de iniciar a programar, debes plantear primero qué deseas hacer, qué problema deseas solucionar o qué objetivo deseas alcanzar.
Inicia desde un objetivo muy general y desglosa ese objetivo a pequeños objetivos que trabajen conjuntamente para el logro del objetivo general. Utiliza lápiz y papel, y piensa cuál sería la manera más eficiente para solucionar un problema o alcanzar el objetivo a través de un algoritmo.