In mathematics and computing, an algorithm is a procedure (a finite set of well-defined instructions) for accomplishing some task which, given an initial state, will terminate in a defined end-state. The computational complexity and efficient implementation of the algorithm are important in computing, and this depends on suitable data structures.
Informally, the concept of an algorithm is often illustrated by the example of a recipe, although many algorithms are much more complex; algorithms often have steps that repeat (iterate) or require decisions (such as logic or comparison). In most higher level programs, algorithms act in complex patterns, each using smaller and smaller sub-methods which are built up to the program as a whole. In many programming languages, algorithms are implemented as functions or procedures.
The concept of an algorithm originated as a means of recording procedures for solving mathematical problems such as finding the common divisor of two numbers or multiplying two numbers. The concept was formalized in 1936 through Alan Turing's Turing machines and Alonzo Church's lambda calculus, which in turn formed the foundation of computer science.
More on [ Algorithm ]
Quantum Computing
Computer Programming
Combinatorics :: Math

Abstract State Machines - A formal method for specifying and verifying algorithms. Tools, meetings, researchers in the area.
Meta Description: [ Abstract State Machine Home Page ]
ACM SIGACT - Special Interest Group on Algorithms and Computation Theory, the ACM special interest group for Theoretical Computer Science. Site has membership information, meetings, reports and a newsletter for members.
Algorithm Design Paradigms - A course by Paul Dunne at the University of Liverpool. Slides and notes in HTML and PS.
Algorithms Archive - A collection including searching, sorting, tracking, mathematics and cellular automata. In English and Italian.
Algorithms Courses - Links to courses in algorithms maintained at various university computer science departments.
500
Algorithms in the Real World - Notes for a course at Carnegie Mellon University.
Analysis Of Algorithms - An initiative of attendees of the 1997 Dagstuhl seminar, these pages provide research papers, a bulletin board, and links to researchers and other resources in the field. The focus is on average case and probabilistic analysis.
CATS: Combinatorial Algorithms Test Sets - Searchable index of problems, links and methodology.
Combinatorial Algorithms - Course material, syllabus and notes for a course by Roger Whitney at SDSU.
Combinatorial Algorithms - Lecture notes of a course at San Diego State University.
Computer Programming Algorithms Directory - Resources that describe computer programming algorithms.
Meta Description: [ A directory of web pages describing computer programming algorithms (often with code samples) ]
Data Structures - Lecture notes by Steven Skiena.
Data Structures - Introduction to data structures, with Java code, by Peter M. Williams.
Meta Description: [ Data Structures ]
Design and Analysis of Computer Algorithms - Lecture notes; applets and code in C, C++, and Java; links regarding books, journals, computability, quantum computing, societies and organizations.
Meta Description: [ This site contains design and analysis of various computer algorithms such as
divide-and-conquer, dynamic, greedy, graph, computational geometry etc. It also contains applets and
codes in C, C++, and Java. A good collection of links regarding books, journals, computability,
quantum co... ]
Dictionary of Algorithms, Data Structures, and Problems - A dictionary of algorithms, algorithmic techniques, data structures, and archetypical problems, with related definitions. Many entries have links to implementations, tutorials, and bibliographical references.
Meta Description: [ Definitions of algorithms, data structures, and classical
Computer Science problems.
Some entries have links to implementations and more information. ]
500
Hoshen-Kopelman Algorithm for Cluster Identification - An algorithm for identifying connected clusters on a lattice where sites may be occupied or non-occupied. With example C code.
Introduction to Quantum Algorithms - An introduction to quantum algorithms by Matthew Hayward for those new to the field and who do not have an extensive physics background.
Meta Description: [ Quantum Computing and Shor's Algorithm ]
On the Road to Algorithms - Information on algorithms such as Bubble Sort and Random Number Generation, using HTML, Java and Perl. Collected by Lam Ka Chun (Raymond).
Meta Description: [ Informations on algorithms like Bubble Sort,Random Number Generation for simulation and demostration of Numerical Analysis using HTML,Java Applet and Perl. ]
OOPWeb Algorithms Directory - Algorithms lecture notes, courses, tutorials, references, guides and online books.
Meta Description: [ Algorithms lecture notes, courses, tutorials, references, guides and online books. All of these are published at the Algorithms Directory , allowing quick access and accurate search. ]
Pattern Matching Pointers - A collection of links for and to researchers in the subject.
Priority Queues - Electronic bibliography on priority queues (heaps). Links to downloadable reports, researchers' home pages, and software.
Meta Description: [ Priority Queues (heaps). Technical reports, implementations, and researchers' home pages. By Lee Killough. ]
Problems in Analysis of Algorithms - A list of open problems with updates and solutions.
Resources for the Analysis of Algorithms - Links to papers, conferences and other sites, maintained by Helmut Prodinger.
Self-stabilizing Algorithms - A project to create tools for developing and testing self-stabilizing algorithms.
Meta Description: [ Self-stabilization graph algorithms page ]
Softpanorama Virtual Library - Section on Algorithms and Data Structures. A compilation of links.
Sourcebank - Computer Science - Algorithms - A collection of source code for various topics.
Meta Description: [ Search Sourcebank for java source code, visual c++, vb, artificial intelligence, game programming, perl, matlab, java game, java applets, java programming and c++ tutorials. ]
Stony Brook Algorithm Repository - This is a collection of implementations for 75 fundamental algorithms problems, including data structures, numerical and combinatorial algorithms,graph algorithms, and computational geometry. Implementations are available in C++, Java, Fortran, and other languages.
The Algorithm Base - Database of algorithms. May be scanned through or can be questioned through a knowledge based assistant. Links to originating web sites.
Meta Description: [ The Algorithm Base, a collection of algorithm descriptions in natural language, pseudo-code and various programming languages. ]
Tree Automata Techniques and Applications - An evolving web text in PostScript and PDF, with related software.
Meta Description: [ TATA is a book on tree automata techniques and applications ]
Web Data Structures and Algorithms - Lecture notes and links for a course by Godfried Toussaint.
| A Computer Science Sample: Algorithms and Beyond |