Un algoritmo es una serie de pasos ordenados y definidos para resolver un problema. Puede expresarse en lenguaje natural, pseudocódigo o diagramas de flujo. Existen algoritmos de ordenamiento y búsqueda. Los algoritmos deben ser finitos, definidos y sencillos. Pueden implementarse en un lenguaje de programación luego de describirse a nivel alto, formalmente y como implementación.