Copyright © Philip M. Parker, INSEAD. Terms of Use.

Definition: Algorithm |
AlgorithmNoun1. A precise rule (or set of rules) specifying how to solve some problem. Source: WordNet 1.7.1 Copyright © 2001 by Princeton University. All rights reserved. |
Date "algorithm" was first used: 1699. (references) |
| Domain | Definitions |
Computing | Algorithm A detailed sequence of actions to perform to accomplish some task. Named after an Iranian mathematician, Al-Khawarizmi. Technically, an algorithm must reach a result after a finite number of steps, thus ruling out brute force search methods for certain problems, though some might claim that brute force search was also a valid (generic) algorithm. The term is also used loosely for any sequence of actions (which may or may not terminate). Paul E. Black's Dictionary of Algorithms, Data Structures, and Problems (http://www.nist.gov/dads/). (2002-02-05). Source: The Free On-line Dictionary of Computing. |
Aerospace | 1. A special mathematical procedure for solving a particular type of problem.2. = algorism. (references) |
Math | (1) Software delivered to the SDPS by a science investigator (PI, TL, or II) to be used as the primary tool in the generation of science products. The term includes executable code, source code, job control scripts, as well as documentation. (2) A prescription for the calculation of a quantity; used in Earth system science to derive physical or biological properties from observations and to facilitate calculation of state variables in models. (references) |
| A computable set of steps to achieve a desired result. (references) | |
Mathematics | A formal statement, clear complete and unambiguous, of how a certain process needs to be undertaken. Source: European Union. (references) |
Science | A mathematical relation between an observed quantity and a variable used in a step-by-step mathematical process to calculate a quantity. In the context of remote sensing, algorithms generally specify how to determine higher-level data products from lower-level source data. For example, algorithms prescribe how atmospheric temperature and moisture profiles are determined from a set of radiation observations originally sensed by satellite sounding instruments. (references) |
Solar | The set of simple instructions that combine to accomplish a task. Computer codes are algorithms. (references) |
Weather | A computer program (or set of programs) which is designed to systematically solve a certain kind of problem. WSR-88D radars (NEXRAD) employ algorithms to analyze radar data and automatically determine storm motion, probability of hail, VIL, accumulated rainfall, and several other parameters. (references) |
Source: compiled by the editor from various references; see credits. | |
(From Wikipedia, the free Encyclopedia)
Broadly-defined, an algorithm is an interpretable, finite set of instructions for dealing with contingencies and accomplishing some task which can be anything that has a recognizable end-state, end-point, or result for all inputs. (contrast with heuristic). Algorithms often have steps that repeat (iterate) or require decisions (logic and comparison) until the task is completed.
In formal mathematical terms, an algorithm is considered to be any sequence of operations which can be performed by a Turing-complete system.
Different algorithms may complete the same task with a different set of instructions in more or less time, space, or effort than others. A cooking recipe is an example of an algorithm. Given two different recipes for making potato salad, one may have "peel the potato" before "boil the potato" while the other presents the steps in the reverse order, yet they both call for these steps to be repeated for all potatoes and end when the potato salad is ready to eat.
Correctly performing an algorithm will not solve a problem if the algorithm is flawed, or not appropriate to the problem. For example, performing the potato salad algorithm will fail if there are no potatoes present, even if all the motions of preparing the salad are performed as if the potatoes were there.
Algorithms are essential to the way computers process information, because a computer program is essentially an algorithm that tells the computer what specific steps to perform (in what specific order) in order to carry out a specified task, such as calculating employees' paychecks or printing students' report cards.
Typically, when an algorithm is associated with processing information, data is read from an input source or device, written to an output sink or device, and/or stored for further use. Stored data is regarded as part of the internal state of the entity performing the algorithm.
For any such computational process, the algorithm must be rigorously defined: specified in the way it applies in all possible circumstances that could arise. That is, any conditional steps must be systematically dealt with, case-by-case; the criteria for each case must be clear (and computable).
Because an algorithm is a precise list of precise steps, the order of computation will almost always be critical to the functioning of the algorithm. Instructions are usually assumed to be listed explicitly, and are described as starting 'from the top' and going 'down to the bottom', an idea that is described more formally by flow of control.
So far, this discussion of the formalization of an algorithm has assumed the premises of imperative programming. This is the most common conception, and it attempts to describe a task in discrete, 'mechanical' means. Unique to this conception of formalized algorithms is the assignment operation, setting the value of a variable. It derives from the intuition of 'memory' as a scratchpad. There is an example below of such an assignment.
See functional programming for an alternate conception of an algorithm.
Once a formal description has been obtained, an algorithm is a well-defined method or procedure for solving a problem such as a problem in mathematics; or otherwise relating to the manipulation of information.
Algorithms are now most often implemented as computer programs but can be implemented by other means, such as electric circuits or a machine. They may even be performed directly by humans: think for example of an abacus, or performing arithmetic with pen and paper or its mental equivalent - most people use algorithms they learned as a child to do this.
The analysis and study of algorithms is a central discipline of computer science, and is often practiced abstractly (without the use of a specific programming language, designed for practical implementation). In this sense, it resembles other mathematical disciplines in that the analysis focuses on the underlying principles driving the algorithm, and not it's particular implementation. The 'coding' (more properly 'codifying' though this terminology is seldom, if ever, used) of algorithms in such an abstract manner is termed 'writing pseudocode'.
Some restrict the definition of algorithm to procedures that eventually finish. Others include procedures that could run forever without stopping, arguing that a computer may be required to carry out an ongoing task. Other requirements beside having an ending state, then, are used to determine if the algorithm successfully completes a task.
Here is a simple example of an algorithm.
Imagine you have an unsorted list of random numbers. Our goal is to find the highest number in this list. Upon first thinking about the solution, you will realize that you must look at every number in the list. Upon further thinking, you will realize that you need to look at each number only once. Taking this into account, here is a simple algorithm to accomplish this:
The word algorithm is a corruption of early English algorisme, which came from Latin algorismus, which came from the name of the Persian mathematician Abu Ja'far Mohammed ibn Musa al-Khwarizmi (ca. 780 - ca. 845). He was the author of the book Kitab al-jabr w'al-muqabala (Rules of Restoration and Reduction) which introduced algebra to people in the West. The word algebra itself originates from al-Jabr from the book title. The word algorism originally referred only to the rules of performing arithmetic using Arabic numerals but evolved into algorithm by the 18th century. The word has now evolved to include all definite procedures for solving problems or performing tasks.
The first case of an algorithm written for a computer was Ada Byron's notes on the analytical engine written in 1842, from which she earns the title of the world's first programmer.
The lack of mathematical rigor in the "well-defined procedure" definition of algorithms posed some difficulties for mathematicians and logicians of the 19th and early 20th centuries. This problem was largely solved with the description of the Turing machine, an abstract model of a computer described by Alan Turing, and the demonstration that every method yet found for describing "well-defined procedures" advanced by other mathematicians could be emulated on a Turing machine (a statement known as the Church-Turing thesis).
Nowadays, a formal criterion for an algorithm is that it is a procedure implementable on a completely-specified Turing machine or one of the equivalent formalisms. Turing's initial interest was in the halting problem: deciding when an algorithm describes a terminating procedure. In practical terms computational complexity theory matters more: it includes the puzzling problem of the algorithms called NP-complete, which are generally presumed to take more than polynomial time.
Algorithms come in different flavours. A recursive algorithm is one that invokes (makes reference to) itself repeatedly until a certain condition matches, which is a method common to functional programming. A greedy algorithm works by making a series of simple decisions that are never reconsidered. A divide-and-conquer algorithm recursively reduces an instance of a problem to one or more smaller instances of the same problem, until the instances are small enough to be directly expressible in the programming language employed (what is 'direct' is often discretionary). A dynamic programming algorithm works bottom-up by building progressively larger solutions to subproblems arising from the original problem, and then uses those solutions to obtain the final result. Many problems (such as playing chess) can be modeled as problems on graphs. A graph exploration algorithm specifies rules for moving around a graph and is useful for such problems. Probabilistic algorithms are those that make some choices randomly (or pseudo-randomly).
Algorithms are usually discussed with the assumption that computers execute each instruction of an algorithm at a time. Those computers are sometimes called serial computers. An algorithm designed for such an environment is called a serial algorithm, as opposed to parallel algorithms, which take advantage of computer architectures where several processors can work on a problem at the same time.
Genetic algorithms attempt to find solutions to problems by mimicking biological evolutionary processes, with a cycle of random mutations yielding successive generations of 'solutions'. Thus, they emulate reproduction and "survival of the fittest". In genetic programming, this approach is extended to algorithms, by regarding the algorithm itself as a 'solution' to a problem.
A list of algorithms discussed in Wikipedia is available.
Formalized algorithms
Implementing algorithms
Example
And here is a more formal coding of the algorithm in a pseudocode that is similar to most programming languages:
Given: a list List of length Length
counter = 1
largest = List[counter]
while counter <= Length:
if List[counter] > largest:
largest = List[counter]
counter = counter + 1
print largest
Notes on notation:
As it happens, most people who implement algorithms want to know how much of a particular resource (such as time or storage) a given algorithm requires. Methods have been developed for the analysis of algorithms to obtain such quantitative answers, and after reading that section, you will determine that this algorithm has a time requirement of O(n), where the big O notation was used and n stands for the length of the list.History
Classes of algorithms
See also
References
Source: adapted by the editor from Wikipedia, the free encyclopedia under a copyleft GNU Free Documentation License (GFDL) from the article "Algorithm."
Synonyms: AlgorithmSynonyms: algorithmic program (n), algorithmic rule (n). (additional references) |
| Context | Synonyms within Context (source: adapted from Roget's Thesaurus). |
Numeration | Noun: numeration; numbering; Verb: pagination; tale, recension, enumeration, summation, reckoning, computation, supputation; calculation, calculus; algorithm, algorism, rhabdology, dactylonomy; measurement; statistics. |
| Source: adapted from Roget's Thesaurus. | |
| Domain | Title | ||
Books |
| ||
Periodicals |
| ||
Music |
| ||
Source: compiled by the editor from various references; see credits. | |||
| Subject | Topic | Quote |
Health | With the advent of solid-phase antibody-binding assays, such as enzyme-linked immunosorbent assay (ELISA), the diagnostic algorithm for identification of viral activity has changed. (references) | |
The ATP recognized low HDL cholesterol (< 35 mg/dL) as a major risk factor for coronary heart disease (CHD). It recommended that HDL cholesterol be measured in all patients with high blood cholesterol (greater than or equal to 240 mg/dL) and in those patients with borderline high blood cholesterol (200-239 mg/dL) who had definite CHD or two other CHD risk factors (one of which could be male sex). Low HDL cholesterol was entered in the treatment decision algorithm as one of the major risk factors that would affect the assessment of overall coronary risk and therefore influence clinical decisions about treatment. (references) | ||
Source: compiled by the editor from ICON Group International, Inc.; see credits. | ||
| "Algorithm" is generally used as a noun (singular) -- approximately 99.81% of the time. "Algorithm" is used about 539 times out of a sample of 100 million words spoken or written in English. Its rank is based on over 700,000 words used in the English language. Some parts-of-speech are not covered due to the samples used by the British National Corpus. (note: percents less than one-hundredth of one percent have been omitted) |
| Parts of Speech | Percent | Usage per 100 Million Words | Rank in English |
| Noun (singular) | 99.81% | 538 | 11,454 |
| Noun (proper) | 0.19% | 1 | 339,140 |
| Total | 100.00% | 539 | N/A |
Source: compiled by the editor from several corpora; see credits.
Expressions using "algorithm": A* algorithm ♦ algorithm 8 ♦ algorithm DEScription ♦ algorithm error ♦ anytime algorithm ♦ approximation algorithm ♦ Boltzmann learning algorithm ♦ Codd's reduction algorithm ♦ data Encryption Algorithm ♦ euclidean Algorithm ♦ Euclid's Algorithm ♦ evolutionary algorithm ♦ generational replacement genetic algorithm ♦ genetic algorithm ♦ graph Algorithm and Software Package ♦ international Data Encryption Algorithm ♦ memetic algorithm ♦ Michigan Algorithm Decoder ♦ nearest neighbor algorithm ♦ replacement algorithm ♦ shift algorithm ♦ sorting algorithm ♦ spanning tree algorithm. Additional references. | |
| Source: compiled by the editor from various references; see credits. |
| The following statistics estimate the number of searches per day across the major English-language search engines as identified by various trade publications. Hyperlinks lead to commercial use of the expression at Amazon.com. |
| Expression | Frequency per Day | Expression | Frequency per Day |
algorithm | 561 | md5 algorithm | 12 |
genetic algorithm | 172 | search algorithm | 12 |
algorithm find gene | 96 | algorithm rete | 12 |
acls algorithm | 45 | algorithm dijkstras | 11 |
encryption algorithm | 40 | algorithm videoguard | 11 |
sorting algorithm | 29 | graph algorithm | 10 |
algorithm and data structure | 25 | introduction to algorithm | 10 |
algorithm definition | 21 | crc algorithm | 10 |
rsa algorithm | 20 | data compression algorithm | 10 |
euclidean algorithm | 17 | greedy algorithm | 10 |
compression algorithm | 16 | evolutionary algorithm | 10 |
sort algorithm | 15 | data mining algorithm | 10 |
algorithm pharma | 14 | the simplex algorithm | 10 |
dijkstra algorithm | 14 | algorithm quick sort | 9 |
pid algorithm | 14 | scheduling algorithm | 9 |
des algorithm | 13 | computer algorithm | 9 |
algorithm back percolation | 13 | algorithm soundex | 9 |
algorithm em | 12 | algorithm generator sql | 9 |
hash algorithm | 12 | square root algorithm | 9 |
quicksort algorithm | 12 | shortest path algorithm | 8 |
| Source: compiled by the editor from various references; see credits. | |||
| Language | Translations for "algorithm"; alternative meanings/domain in parentheses. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Albanian | aldoritëm. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Arabic | نظام الحلول الحسابية, الحلول الحسابية. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Bulgarian | метод (method, mode, modus, process, scheme, system, way), алгоритъм. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Chinese | 算法 (algorithmic). (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Czech | algoritmus. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Danish | algoritme. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Dutch | algoritme. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Esperanto | algoritmo. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Farsi | الگوریتم . (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Finnish | algoritmi. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
French | algorithme. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
German | Algorithmus. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Greek | αλγόριθμος. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Hungarian | algoritmus (algorism). (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Indonesian | algoritme. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Italian | algoritmo. (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Japanese Kanji | "算手 , アルコール発酵 (a "salon" where the hostesses are supposedly part-timers with other jobs, alcohol fermentation, Alcyone, Algeria, Algol, algorithmic, argon, ars amatoria, tango). (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Japanese Katakana | アルゴリズ , え"ざ"てじゅ". (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Korean | 산법 (Arithmetic). (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Pig Latin | algorithmay algoritmo. (various references) алгоритм (algorism). (various references) algoritam. (various references) algoritmo. (various references) algoritm. (various references) arap rakamları sistemi (algorism). (various references) алгоритм. (various references) thuật toán (algorism). (various references) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Language | Period | Translations |
| Old French | 900-1400 | algorisme. (various references) |
| Source: compiled by the editor from various references. | ||
Derivations | |
Words beginning with "algorithm": algorithmic, algorithmically, algorithms. (additional references) | |
| |
"Algorithm" is suggested in spellcheckers for the following: Algarth, algorhithm, algorhitm, algorhthm, algorith, algorithim, algorithme, algorithn, algoriths, algorithum, algorithym, algoritm, algorthim, algorythm, algotithm, alogorithm, alogrithm. (additional references) | |
| Source: compiled by the editor, based on several corpora (additional references). | |
| # of Phoneme Matches | Pronunciation | Word(s) rhyming with "algorithm" (pronounced a"lgeri'thum) |
| 6 | -g er i' th u m | logarithm. |
| 3 | -th u m | fathom, rhythm. |
Source: compiled by the editor (additional references); see credits. | ||
Scrabble® Enable2K-Verified Anagrams | |
Direct Anagrams: logarithm. | |
| Words within the letters "a-g-h-i-l-m-o-r-t" | |
-2 letters: alright. | |
-3 letters: alight, aright, galiot, glamor, glioma, gloria, harlot, latigo, liroth, maloti, mitral, mohair, mortal, ramtil, rialto, righto, tailor, thairm, thiram, thoria. | |
-4 letters: airth, algor, altho, amigo, amort, argil, argol, argot, garth, gator, girth, glair, gloam, gloat, goral, grail, griot, grith, groat, hilar, horal, ihram, imago, laigh, laith, largo, lathi, light, lirot, litho. | |
| Words containing the letters "a-g-h-i-l-m-o-r-t" | |
+1 letter: algorithms, logarithms. | |
+2 letters: algorithmic, cologarithm, logarithmic. | |
+3 letters: cologarithms. | |
+4 letters: antilogarithm. | |
+5 letters: antilogarithms, dermatoglyphic, metallographic, pharmacologist, rheumatologies, rheumatologist. | |
| Source: compiled by the editor from various references; see credits. SCRABBLE® is a registered trademark. All intellectual property rights in and to the game are owned in the U.S.A and Canada by Hasbro Inc., and throughout the rest of the world by J.W. Spear & Sons Limited of Maidenhead, Berkshire, England, a subsidiary of Mattel Inc. Mattel and Spear are not affiliated with Hasbro. | |
Hexadecimal (or equivalents, 770AD-1900s) (references)41 6C 67 6F 72 69 74 68 6D |
| Leonardo da Vinci (1452-1519; backwards) (references)
|
| American Sign Language (origins from 1620-1817 in Italy and, especially, France) (references)
|
| Semaphore (1791, in France) (references)
|
| Braille (1829, in France) (references)
|
Morse Code (1836) (references).- .-.. --. --- .-. .. - .... -- |
| Dancing Men (Sir Arthur Conan Doyle, 1903) (references)
|
Binary Code (1918-1938, probably earlier) (references)01000001 01101100 01100111 01101111 01110010 01101001 01110100 01101000 01101101 |
HTML Code (1990) (references)A l g o r i t h m |
ISO 10646 (1991-1993) (references)0041 006C 0067 006F 0072 0069 0074 0068 006D |
| British Sign Language (Fingerspelling, BSL; 1992, British Deaf Association Dictionary of British Sign Language) (references)
|
Encryption (beginner's substitution cypher): (references)357873818475867479 |
| 1. Definition 2. Synonyms 3. Crosswords 4. Usage: Commercial | 5. Quotations: Non-fiction 6. Usage Frequency 7. Expressions 8. Expressions: Internet | 9. Translations: Modern 10. Translations: Ancient 11. Derivations 12. Rhymes | 13. Anagrams 14. Orthography 15. Bibliography |
Copyright © Philip M. Parker, INSEAD. Terms of Use.