Algorithm: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Ragnar Schroder
(Added "references" section)
imported>Ragnar Schroder
(→‎Basic algorithm designs: math markup error fixed)
Line 27: Line 27:
==Basic algorithm designs==
==Basic algorithm designs==
There are several general methods for designing algorithms.  Some of the most common are  
There are several general methods for designing algorithms.  Some of the most common are  
*[[Divide and conquer]] strategies.  These typically yield algorithms of O(n \log n)</math> complexity, or better.
*[[Divide and conquer]] strategies.  These typically yield algorithms of <math>O(n \log n)</math> complexity, or better.
*The [[greedy method]].   
*The [[greedy method]].   
*[[Dynamic programming]].
*[[Dynamic programming]].


==References==
==References==

Revision as of 18:41, 17 November 2007

This article is a stub and thus not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

An algorithm is a sequence of steps used to solve a problem. A cooking recipe can be considered an example of an algorithm, although the term is more frequently applied to the information processing instructions used in computer programs.

Introduction

An algorithm consists of the underlying recipe steps (print the value of X) rather than the actual computer program source code used to execute the steps (PRINT X). 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

References

  • Ellis Horowitz and Sartaj Sahni (1978). Fundamentals of computer algorithms.

The classic texts on computer programming algorithms include three volumes written by Donald Knuth collectively titled "The Art of Computer Programming" (ISBN 0201485419).

Also useful is the book "Introduction to Algorithms" by Thomas Cormen, 2nd ed. Dec. 2003 (with CD) (ISBN 0072970545).

External Links

Computer graphics algorithms

Boost algorithms C++ library

Numerical recipes algorithms