Un algoritmo describe los pasos generales para resolver un problema. Para ser válido, el algoritmo debe ser correcto en los resultados que proporciona y también debe terminar. Lo que significa que un analista tiene que demostrar estas dos características para establecer la validez del algoritmo.
Para ser válido, un programa simplemente tiene que compilar (o ser interpretado) y aquí radica la diferencia clave. Un programa es una secuencia de pasos escritos para ejecutarse en una máquina. Este es un programa válido de Python:
mientras cierto:
imprimir “dahsdkasd”
- ¿Qué debo aprender a usar el algoritmo AlphaGo Zero para otras aplicaciones con conjuntos de datos y reglas?
- Cómo calcular (n!) Mod p y nCr mod m, como se requiere en varias preguntas algorítmicas
- Cómo imprimir todas las permutaciones de una cadena tanto de forma iterativa como recursiva
- ¿Cuál es el intercambio de espacio temporal en las estructuras de datos?
- ¿Cuánta codificación necesito saber antes de comenzar con los algoritmos?
Esto destaca dos cosas. En primer lugar, los criterios para que algo sea un programa se cumplen por su simple calidad de ser ejecutable en una máquina. No tiene que resolver un problema interesante, aunque es difícil imaginar por qué alguien escribiría un programa de este tipo. En segundo lugar , no tiene que terminar, en principio. Esto es importante porque hay clases enteras de programas escritos de esta manera. Un shell de comando, por ejemplo, o un sistema operativo que debe ejecutarse para siempre a menos que un estímulo externo lo detenga.
Los programas generalmente implementan algoritmos, y otros, como un sistema operativo, implementan muchos algoritmos. Pasar de un algoritmo a un programa es pasar de una idea a una cosa concreta. A menudo hay que rellenar huecos que el algoritmo no especifica pero que los humanos pueden entender intuitivamente.
En pocas palabras, un algoritmo es una secuencia de pasos que describe una idea para resolver un problema que cumple con los criterios de corrección y terminabilidad. Un programa es una secuencia de pasos que se especifica con suficiente detalle para poder ejecutarse en una máquina.