An algorithm is any well defined computational procedure that takes some value or a set of values, as input and produces some value, or set of values as output (Rayward-Smith et al. 1991 )
Rayward-Smith, V. J., Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. 1991. “Introduction to Algorithms.” The Journal of the Operational Research Society 42 (9). JSTOR:816. http://dx.doi.org/10.2307/2583667.