First the definition:
What is an algorithm? : A step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps.
That's a very unusual definition of an algorithm. I've never heard of a definition that requires an algorithm to be recursive. And if algorithms need to be established, how do you call a new way of solving a problem?
In his wonderful series The Art of Computer Programming (if you haven't read it yet, run to your nearest bookstore now and buy it - it will be the best $150 you've ever spend), Knuth dedicates the first paragraph (nine pages, including exercises(!)) to the meaning of the concept algorithm. Quoting him:
The modern meaning for algorithm is quite similar to that of recipe, process, method, technique, procedure, routine, rigmarole, except that the word "algorithm" connotes something just a little different. Besides merely being a finite set of rules that gives a sequence of operations for solving a specific type of problem, an algorithm has five important features:
- Finiteness.
- Definiteness.
- Input.
- Output.
- Effectiveness.
Each of the above points is further explained, but I've omitted the explaination.
Cormen, Leiserson and Rivest start their Introduction to Algorithms (another "must have") with:
Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output.
If you wonder why Knuth requires an algorithm to be finite (that is, the algorithm terminates eventually) and CLR don't, the latter further define correct algorithms, which must terminate.
Abigail
In reply to Re: Algorithms
by Abigail-II
in thread Algorithms
by artist
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |