Este documento describe los conceptos básicos de los algoritmos. Un algoritmo es un conjunto ordenado de pasos para resolver un problema. Puede expresarse de varias formas como diagrama de flujo o pseudocódigo. Los algoritmos pueden ser deterministas o no deterministas dependiendo de si siempre dan el mismo resultado para una entrada dada. El análisis de algoritmos estudia su complejidad abstractamente. Cada algoritmo requiere entrada, un proceso y produce una salida.