Saltar al contenido principal

Algoritmos

Un algoritmo es un conjunto ordenado y finito de operaciones sencillas que conducen a la resolución de un problema, como por ejemplo la formulación programática paso a paso para producir una serie de resultados en un programa informático.

El concepto de algoritmo se ilustra frecuentemente con el ejemplo de una receta, aunque muchos algoritmos son más complejos. Pueden repetir pasos (hacer iteraciones) o necesitar decisiones (tales como comparaciones o lógica) hasta que la tarea se complete. Un algoritmo correctamente ejecutado no resolverá un problema si el algoritmo fuese incorrecto o no fuese apropiado para el problema.

Etimología

La palabra algoritmo tiene origen en el sobrenombre Al-Khwarizmi, del matemático persa del siglo IX, Abu Yafar Mohámmed Abenmusa, cuyas obras fueron traducidas en el occidente cristiano en el siglo XII, recibiendo una de ellas el nombre "Algorithmi de numero indorum", sobre los algoritmos usando el sistema de numeración decimal (indio). Otros autores, sin embargo, defienden el origen de la palabra en Al-goreten (raíz - concepto que se puede aplicar a los cálculos).

Características

Las principales características de un algoritmo son:

  • Claro y preciso: Cada paso del algoritmo debe estar claramente definido y sin ambigüedades. Las instrucciones deben ser precisas y no dejar lugar a interpretaciones distintas.
  • Finito: Un algoritmo debe tener un número finito de pasos. Debe terminar después de un número determinado de pasos, garantizando que no entre en ciclos infinitos.
  • Entrada: Un algoritmo puede recibir datos de entrada, que son los valores o parámetros con los que comienza su ejecución.
  • Salida: Un algoritmo debe producir resultados o salidas a partir de las entradas proporcionadas. La salida es la solución al problema o el resultado de la tarea.
  • General: Un algoritmo debe ser suficientemente general para resolver un conjunto de problemas similares y no solo un caso específico. Su aplicación debe ser amplia y adaptable a diferentes situaciones o datos.
  • Determinismo: Un algoritmo debe ser determinista, lo que significa que, para un conjunto dado de entradas, debe producir la misma salida o resultado cada vez que se ejecute.

Para ilustrar estas características, un ejemplo de algoritmo para calcular la suma de números enteros desde 11 hasta nn sería el siguiente:

Algoritmo para la suma de los primeros N números enteros

  1. Entrada: Un número entero positivo nn.
  2. Inicialización: Establecer la variable suma a 0.
  3. Proceso:
    • Para cada número i desde 1 hasta nn:
    • Añadir i a la variable suma.
  4. Salida: Devolver el valor de suma.

Este algoritmo:

  • Es claro y preciso porque cada paso está bien definido.
  • Es finito porque la suma de números tiene un número finito de pasos.
  • Requiere entrada (el valor de nn) y produce salida (la suma).
  • Puede ser eficiente para valores pequeños y medianos de nn.
  • Es general porque puede aplicarse a cualquier número entero positivo.
  • Es determinista porque para cada valor de nn, la salida será siempre la misma.