In computation we always talk about the time and space complexity of a given algorithm. The time complexity describes how long an algorithm takes in relation to the quantity of input it receives. Space complexity describes how much memory (space) an algorithm requires.
While the time complexity is intuitive, the space complexity seems less obvious. How exactly is the memory being used? If the algorithm implemented a nondeterministic process then I imagine the "space" is being used to keep a record of failed attempts. But most algorithms are deterministic; in this case how is memory being used?