Template:Short description An algorithm is fundamentally a set of rules or defined procedures that is typically designed and used to solve a specific problem or a broad set of problems.

Broadly, algorithms define process(es), sets of rules, or methodologies that are to be followed in calculations, data processing, data mining, pattern recognition, automated reasoning or other problem-solving operations. With the increasing automation of services, more and more decisions are being made by algorithms. Some general examples are; risk assessments, anticipatory policing, and pattern recognition technology.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

The following is a list of well-known algorithms along with one-line descriptions for each.

Automated planningEdit

Template:Further

Combinatorial algorithmsEdit

Template:Further

General combinatorial algorithmsEdit

|CitationClass=web }}</ref>

|CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Graph algorithmsEdit

Template:Further

Graph drawingEdit

Template:Further

Network theoryEdit

Template:Further

Routing for graphsEdit

Graph searchEdit

Template:Further

SubgraphsEdit

Sequence algorithmsEdit

Template:Further

Approximate sequence matchingEdit

Selection algorithmsEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

Sequence searchEdit

|CitationClass=web }}</ref>

Sequence mergingEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

Sequence permutationsEdit

Template:Further

Sequence combinationsEdit

Template:Further

Sequence alignmentEdit

Sequence sortingEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} Template:Contradicts other

  • Exchange sorts
    • Bubble sort: for each pair of indices, swap the items if out of order
    • Cocktail shaker sort or bidirectional bubble sort, a bubble sort traversing the list alternately from front to back and back to front
    • Comb sort
    • Gnome sort
    • Odd–even sort
    • Quicksort: divide list into two, with all items on the first list coming before all items on the second list.; then sort the two lists. Often the method of choice
  • Humorous or ineffective
    • Bogosort: the list is randomly shuffled until it happens to be sorted
    • Slowsort
    • Stooge sort
    • Stalin sort: all elements that are not in order are removed from the list<ref>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref>

SubsequencesEdit

Template:Further

SubstringsEdit

Template:Further

Computational mathematicsEdit

Template:Further Template:See also

Abstract algebraEdit

Template:Further

Computer algebraEdit

Template:Further

GeometryEdit

Template:Main category Template:Further

Number theoretic algorithmsEdit

Template:Further

Numerical algorithmsEdit

Template:Further

Differential equation solvingEdit

Template:Further

Elementary and special functionsEdit

Template:Further

GeometricEdit

Interpolation and extrapolationEdit

Template:Further

Linear algebraEdit

Template:Further

Template:Anchor

Monte CarloEdit

Template:Further

Numerical integrationEdit

Template:Further

Root findingEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

Optimization algorithmsEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}Hybrid Algorithms

Computational scienceEdit

Template:Further

AstronomyEdit

BioinformaticsEdit

Template:Further Template:See also

GeoscienceEdit

Template:Further

  • Vincenty's formulae: a fast algorithm to calculate the distance between two latitude/longitude points on an ellipsoid
  • Geohash: a public domain algorithm that encodes a decimal latitude/longitude pair as a hash string

LinguisticsEdit

Template:Further

MedicineEdit

Template:Further

PhysicsEdit

Template:Further

StatisticsEdit

Template:Further

Computer scienceEdit

Template:Further

Computer architectureEdit

Template:Further

  • Tomasulo algorithm: allows sequential instructions that would normally be stalled due to certain dependencies to execute non-sequentially

Computer graphicsEdit

Template:Further

CryptographyEdit

Template:Further

Digital logicEdit

Machine learning and statistical classificationEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} Template:Further

Programming language theoryEdit

Template:Further

ParsingEdit

Template:Further

Quantum algorithmsEdit

Template:Further

Theory of computation and automataEdit

Template:Further

Information theory and signal processingEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

Coding theoryEdit

Template:Further

Error detection and correctionEdit

Template:Further

Lossless compression algorithmsEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

|CitationClass=web }}</ref>

Lossy compression algorithmsEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

Digital signal processingEdit

Template:Further

Image processingEdit

Template:Further

|CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Software engineeringEdit

Template:Further

Database algorithmsEdit

Template:Further

Distributed systems algorithmsEdit

Template:Further

Memory allocation and deallocation algorithmsEdit

NetworkingEdit

Template:Further

Operating systems algorithmsEdit

Template:Further

Process synchronizationEdit

Template:Further Template:Further

SchedulingEdit

Template:Further

I/O schedulingEdit

Template:Further Template:Expand section

Disk schedulingEdit

See alsoEdit

ReferencesEdit

Template:Reflist

Template:Algorithmic paradigms