List of algorithms

Broad definition of the term algorithm

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.[1]

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

Automated planning

Combinatorial algorithms

General combinatorial algorithms

  • Brent's algorithm: finds a cycle in function value iterations using only two iterators[2]
  • Floyd's cycle-finding algorithm: finds a cycle in function value iterations[3]
  • Gale–Shapley algorithm: solves the stable marriage problem[4]
  • Pseudorandom number generators (uniformly distributed—see also List of pseudorandom number generators for other PRNGs with varying degrees of convergence and varying statistical quality):[5]
    • ACORN generator
    • Blum Blum Shub
    • Lagged Fibonacci generator
    • Linear congruential generator
    • Mersenne Twister

Graph algorithms

Graph drawing

  • Force-based algorithms (also known as force-directed algorithms or spring-based algorithm)
  • Spectral layout

Network theory

Routing for graphs

Graph search

Subgraphs

Sequence algorithms

Approximate sequence matching

Selection algorithms

Sequence search

Sequence merging

  • Simple merge algorithm
  • k-way merge algorithm
  • Union (merge, with elements on the output not repeated)

Sequence permutations

Sequence combinations

Sequence alignment

Sequence sorting

Subsequences

Substrings

Computational mathematics

Abstract algebra

Computer algebra

Geometry

Number theoretic algorithms

Numerical algorithms

Differential equation solving

Elementary and special functions

Geometric

Interpolation and extrapolation

Linear algebra

Monte Carlo

Numerical integration

Root finding

Optimization algorithms

Computational science

Astronomy

Bioinformatics

  • Basic Local Alignment Search Tool also known as BLAST: an algorithm for comparing primary biological sequence information
  • Kabsch algorithm: calculate the optimal alignment of two sets of points in order to compute the root mean squared deviation between two protein structures.
  • Velvet: a set of algorithms manipulating de Bruijn graphs for genomic sequence assembly
  • Sorting by signed reversals: an algorithm for understanding genomic evolution.
  • Maximum parsimony (phylogenetics): an algorithm for finding the simplest phylogenetic tree to explain a given character matrix.
  • UPGMA: a distance-based phylogenetic tree construction algorithm.
  • Bloom Filter: probabilistic data structure used to test for the existence of an element within a set. Primarily used in bioinformatics to test for the existence of a k-mer in a sequence or sequences.

Geoscience

  • 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

Linguistics

Medicine

Physics

Statistics

Computer science

Computer architecture

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

Computer graphics

Cryptography

Digital logic

Machine learning and statistical classification

Programming language theory

Parsing

Quantum algorithms

Theory of computation and automata

Information theory and signal processing

Coding theory

Error detection and correction

Lossless compression algorithms

Lossy compression algorithms

Digital signal processing

Image processing

Software engineering

Database algorithms

Distributed systems algorithms

Memory allocation and deallocation algorithms

Networking

Operating systems algorithms

Process synchronization

Scheduling

I/O scheduling

Disk scheduling

Other

  • 'For You' algorithm: a proprietary algorithm developed by the social media network Tik-Tok. Uploaded videos are released first to a selection of users who have been identified by the algorithm as being likely to engage with the video, based on their previous web-site viewing patterns.[10]

See also

References

  1. ^ "algorithm". LII / Legal Information Institute. Retrieved 2023-10-26.
  2. ^ Gegenfurtner, Karl R. (1992-12-01). "PRAXIS: Brent's algorithm for function minimization". Behavior Research Methods, Instruments, & Computers. 24 (4): 560–564. doi:10.3758/BF03203605. ISSN 1532-5970.
  3. ^ "richardshin.com | Floyd's Cycle Detection Algorithm". 2013-09-30. Retrieved 2023-10-26.
  4. ^ Osipenko, Alexander (2021-09-12). "Gale–Shapley algorithm simply explained". Medium. Retrieved 2023-10-27.
  5. ^ Bertoldi, David (2019-11-11). "Building a Pseudorandom Number Generator". Medium. Retrieved 2023-10-27.
  6. ^ "Eytzinger Binary Search - Algorithmica". Retrieved 2023-04-09.
  7. ^ "Shannon-Fano-Elias Coding" (PDF). my.ece.msstate.edu. Archived from the original (PDF) on 2021-02-28. Retrieved 2023-10-11.
  8. ^ "Archived copy" (PDF). www.vision.ee.ethz.ch. Archived from the original (PDF) on 21 February 2007. Retrieved 13 January 2022.{{cite web}}: CS1 maint: archived copy as title (link)
  9. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2013-10-06. Retrieved 2013-10-05.{{cite web}}: CS1 maint: archived copy as title (link)
  10. ^ TikTok Finally Explains How the ‘For You’ Algorithm Works, Wired, published 18 June 2020, accessed 30 January 2022