Esta es la implementación del algoritmo: