A type of algorithm that provides an approximate solution to a problem, without guaranteeing that it is optimal.