Algoritmo

[2]​ En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas determinados.

Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador de su patrón.

[6]​ En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo.

Esto lo hizo Alonzo Church en 1936 con el concepto de «calculabilidad efectiva» basada en su cálculo lambda y por Alan Turing basándose en la máquina de Turing.

[7]​[2]​ En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades, siempre y cuando no consideremos algoritmos paralelos:[11]​ En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso.

[14]​ Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo, el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo, no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos.

Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.

El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural.

Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

La descripción de un algoritmo suele hacerse en tres niveles: También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

Los diagramas de flujo se emplean para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo y, por lo tanto, puede omitir detalles irrelevantes que son necesarios en una implementación.

Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o usar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.

Busque fuentes más precisas para tener mayor comprensión del tema.

Muchos algoritmos se han ideado para implementarse en un programa.

Algunos algoritmos incluso se diseñan especialmente para implementarse usando lápiz y papel.

La declaración de una variable puede realizarse comenzando con var.

Principalmente, existen dos maneras de otorgar valores iniciales a variables: Ejemplo: La estructura secuencial es aquella en la que una acción sigue a otra en secuencia.

En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito.

Cuando esto ocurre, el algoritmo nunca devuelve ningún valor de salida, y podemos decir que la función queda indefinida para ese valor de entrada.

Por esta razón se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición.

Una forma de plasmar (o algunas veces «codificar») un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.

Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.

Para un ejemplo más complejo véase Algoritmo de Euclides.

Los diagramas de flujo sirven para representar algoritmos de manera gráfica
Diagrama de Ada Lovelace de la «nota G», el primer algoritmo informático publicado
Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número
Esquemática de un algoritmo que soluciona un problema de ciclo hamiltoniano
Pseudocódigo para el algoritmo N-Prog
ilustración animada del proceso de un algoritmo de ordenación de números.