A recursive algorithm is a function[disambiguation needed] that tells itself to do something, resulting in it running over and over on smaller and smaller inputs. At the end, it gives back a value.