In mathematics and computer science, an algorithm ( ) is a finite sequence
of mathematically rigorous instructions, typically used to solve a class of
specific problems or to perform a computation. Algorithms are used as
specifications for performing calculations and data processing. More advanced
algorithms can use conditionals to divert the code execution through various
routes (referred to as automated decision-making) and deduce valid inferences
(referred to as automated reasoning).
In contrast, a heuristic is an approach to solving problems without well-
defined correct or optimal results. For example, although social media
recommender systems are commonly called "algorithms", they actually rely on
heuristics as there is no truly "correct" recommendation.