Algorithm: Difference between revisions
imported>Bohdan Leonid Shmorhay (Added link for Numerical Recipes) |
Pat Palmer (talk | contribs) mNo edit summary |
||
(29 intermediate revisions by 12 users not shown) | |||
Line 1: | Line 1: | ||
{{subpages}} | |||
In mathematics or computer science, an '''algorithm''' is a sequence of steps for one particular method of solving a problem, similar to the instructions of a recipe when cooking. The word is derived from the name of [[al-Khwarizmi]], a Persian mathematician who was a librarian in Baghdad in the 9th century CE<ref>BBC online article: <span class="newtab">[https://www.bbc.com/future/article/20201204-lost-islamic-library-maths How modern mathematics emerged from a lost Islamic library]<span>, last access 2/10/2021</ref>. | |||
==Introduction== | |||
An algorithm consists of the steps to follow in solving a problem. When encoded in computer programs, algorithms operate on data values, preferably data maintained in a consistent [[data structure]]. Thus an algorithm is the recipe, while the data structure is the well-stored ingredients on which the recipe is designed to operate. | |||
Nicklaus Wirth, the inventor of the programming language Pascal, titled one of his books "Algorithms + Data Structures = Programs" (ISBN 0130224189) to indicate the complementary nature of algorithms and data structures, and their centrality to computing. | Nicklaus Wirth, the inventor of the programming language Pascal, titled one of his books "Algorithms + Data Structures = Programs" (ISBN 0130224189) to indicate the complementary nature of algorithms and data structures, and their centrality to computing. | ||
Line 7: | Line 10: | ||
Algorithms are usually expressed independently of the programming language, typically in terms of a brief, informal list of commands called pseudocode, or diagrammatically in the form of a flowchart. | Algorithms are usually expressed independently of the programming language, typically in terms of a brief, informal list of commands called pseudocode, or diagrammatically in the form of a flowchart. | ||
Examples of different | Examples of different categories of algorithms used in computer programming include: | ||
* Bounding limit | * Bounding limit | ||
* Compression | * Compression | ||
Line 18: | Line 21: | ||
* Probabilistic | * Probabilistic | ||
* Searching | * Searching | ||
* Sorting | * [[sorting_algorithms|Sorting]] | ||
* Text string | * Text string | ||
The | ==Basic algorithm designs== | ||
There are several general methods for designing algorithms. Some of the most common are | |||
*[[Divide and conquer]] strategies. These typically yield algorithms of <math>O(n \log n)</math> complexity, or better. | |||
*The [[greedy method]]. | |||
*[[Dynamic programming]]. | |||
==Some well known algorithms== | |||
*[[Quicksort]] | |||
*The [[Euclidean algorithm]], known from number theory. | |||
== References == | |||
<references> | |||
</references> | |||
[ | [[Category:Suggestion Bot Tag]] |
Latest revision as of 11:47, 18 July 2024
In mathematics or computer science, an algorithm is a sequence of steps for one particular method of solving a problem, similar to the instructions of a recipe when cooking. The word is derived from the name of al-Khwarizmi, a Persian mathematician who was a librarian in Baghdad in the 9th century CE[1].
Introduction
An algorithm consists of the steps to follow in solving a problem. When encoded in computer programs, algorithms operate on data values, preferably data maintained in a consistent data structure. Thus an algorithm is the recipe, while the data structure is the well-stored ingredients on which the recipe is designed to operate.
Nicklaus Wirth, the inventor of the programming language Pascal, titled one of his books "Algorithms + Data Structures = Programs" (ISBN 0130224189) to indicate the complementary nature of algorithms and data structures, and their centrality to computing.
Algorithms are usually expressed independently of the programming language, typically in terms of a brief, informal list of commands called pseudocode, or diagrammatically in the form of a flowchart.
Examples of different categories of algorithms used in computer programming include:
- Bounding limit
- Compression
- Conversion
- Encryption
- Fourier transform
- Geometric
- Graphic
- Numeric
- Probabilistic
- Searching
- Sorting
- Text string
Basic algorithm designs
There are several general methods for designing algorithms. Some of the most common are
- Divide and conquer strategies. These typically yield algorithms of complexity, or better.
- The greedy method.
- Dynamic programming.
Some well known algorithms
- Quicksort
- The Euclidean algorithm, known from number theory.
References
- ↑ BBC online article: How modern mathematics emerged from a lost Islamic library, last access 2/10/2021