A recursive algorithm is a function 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.