An algorithm that, given a particular input, will always produce the same output.

Non-deterministic algorithm

An algorithm that, even for the same input, could exhibit different behaviours on different runs, as opposed to a deterministic algorithm