A step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps.