consisting of a set of clear rules which specify a finite sequence of operations that provides the solution to a problem. Each step of an algorithm must be clear and precisely defined, and the actions to be carried out must be rigorously specified for each case. An algorithm must always arrive at a problem solution after a finite number of steps.