List of algorithms

From HandWiki
Short description: none

An algorithm is a fundamental set of rules or defined procedures that are typically designed and used to be a simpler way to solve a specific problem or a broad set of problems.

Simply speaking, algorithms define different processes, sets of rules and regulations, or methodologies that are to be followed through 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.

Automated planning

Combinatorial algorithms

General combinatorial algorithms

Graph algorithms

Graph drawing

  • Coin graph drawing algorithms for finite connected planar graphs (approximately computing the theoretical circle-packing given by the Koebe-Andreev-Thurston theorem). See also Fáry's theorem on straight-line drawings of planar graphs.
  • Force-based algorithms (also known as force-directed algorithms or spring-based algorithms)
  • Spectral layout

Network theory

Routing for graphs

Subgraphs

Sequence algorithms

Approximate sequence matching

  • Bitap algorithm: fuzzy algorithm that determines if strings are approximately equal.
  • Phonetic algorithms
    • Daitch–Mokotoff Soundex: a Soundex refinement which allows matching of Slavic and Germanic surnames
    • Double Metaphone: an improvement on Metaphone
    • Match rating approach: a phonetic algorithm developed by Western Airlines
    • Metaphone: an algorithm for indexing words by their sound, when pronounced in English
    • NYSIIS: phonetic algorithm, improves on Soundex
    • Soundex: a phonetic algorithm for indexing names by sound, as pronounced in English
  • String metrics: computes a similarity or dissimilarity (distance) score between two pairs of text strings
  • Trigram search: search for text when the exact syntax or spelling of the target object is not precisely known

Selection algorithms

  • Introselect
  • Quickselect
  • Linear search: locates an item in an unsorted sequence
  • Selection algorithm: finds the kth largest item in a sequence
  • Sorted lists
  • Ternary search: a technique for finding the minimum or maximum of a function that is either strictly increasing and then strictly decreasing or vice versa

Sequence merging

Sequence permutations

Sequence combinations

Sequence alignment

Sequence sorting

Subsequences

Substrings

  • Kadane's algorithm: finds the contiguous subarray with largest sum in an array of numbers
  • Longest common substring problem: find the longest string (or strings) that is a substring (or are substrings) of two or more strings
  • Matching wildcards
  • Substring search
    • Aho–Corasick string matching algorithm: trie based algorithm for finding all substring matches to any of a finite set of strings
    • Boyer–Moore–Horspool algorithm: Simplification of Boyer–Moore
    • Boyer–Moore string-search algorithm: amortized linear (sublinear in most times) algorithm for substring search
    • Knuth–Morris–Pratt algorithm: substring search which bypasses reexamination of matched characters
    • Rabin–Karp string search algorithm: searches multiple patterns efficiently
    • Zhu–Takaoka string matching algorithm: a variant of Boyer–Moore
  • Ukkonen's algorithm: a linear-time, online algorithm for constructing suffix trees

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

Hybrid Algorithms

Computational science

Astronomy

  • Doomsday algorithm: day of the week
  • various Easter algorithms are used to calculate the day of Easter
  • Zeller's congruence is an algorithm to calculate the day of the week for any Julian or Gregorian calendar date

Bioinformatics

* Basic Local Alignment Search Tool also known as BLAST: an algorithm for comparing primary biological sequence information
  • 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.
  • Kabsch algorithm: calculate the optimal alignment of two sets of points in order to compute the root mean squared deviation between two protein structures.
  • Maximum parsimony (phylogenetics): an algorithm for finding the simplest phylogenetic tree to explain a given character matrix.
  • Sorting by signed reversals: an algorithm for understanding genomic evolution.
  • UPGMA: a distance-based phylogenetic tree construction algorithm.
  • Velvet: a set of algorithms manipulating de Bruijn graphs for genomic sequence assembly

Geoscience

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

Linguistics

Medicine

Physics

* Constraint algorithm: a class of algorithms for satisfying constraints for bodies that obey Newton's equations of motion

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

  • C3 linearization: an algorithm used primarily to obtain a consistent linearization of a multiple inheritance hierarchy in object-oriented programming
  • Chaitin's algorithm: a bottom-up, graph coloring register allocation algorithm that uses cost/degree as its spill metric
  • Hindley–Milner type inference algorithm
  • Rete algorithm: an efficient pattern matching algorithm for implementing production rule systems
  • Sethi-Ullman algorithm: generates optimal code for arithmetic expressions

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

  • Elevator algorithm: Disk scheduling algorithm that works like an elevator.
  • Shortest seek first: Disk scheduling algorithm to reduce seek time.

See also

References

  1. "algorithm" (in en). https://www.law.cornell.edu/wex/algorithm. 
  2. Gegenfurtner, Karl R. (1992-12-01). "PRAXIS: Brent's algorithm for function minimization" (in en). Behavior Research Methods, Instruments, & Computers 24 (4): 560–564. doi:10.3758/BF03203605. ISSN 1532-5970. 
  3. "richardshin.com | Floyd's Cycle Detection Algorithm" (in en-US). 2013-09-30. http://www.richardshin.com/floyds-cycle-detection-algorithm/. 
  4. Tesler, G. (2020). "Ch. 5.9: Gale-Shapley Algorithm". University of California San Diego. https://mathweb.ucsd.edu/~gptesler/154/slides/154_galeshapley_20-handout.pdf. 
  5. Kleinberg, Jon; Tardos, Éva (2005). "Algorithmn Design: 1. Stable Matching". Pearson-Addison Wesley: Princeton University. https://www.cs.princeton.edu/~wayne/kleinberg-tardos/pdf/01StableMatching.pdf. 
  6. Goel, Ashish (21 January 2019). "CS261 Winter 2018- 2019 Lecture 5: Gale-Shapley Algorithm". in Ramseyer, Geo. Stanford University. https://web.stanford.edu/~ashishg/cs261/win21/notes/l5_note.pdf. 
  7. "Eytzinger Binary Search - Algorithmica". https://algorithmica.org/en/eytzinger. 
  8. Montanaro, Ashley (2016). "Quantum algorithms: an overview". npj Quantum Information 2: 15023. doi:10.1038/npjqi.2015.23. 
  9. Jordan, Stephen P.. "Quantum Algorithm Zoo". https://quantumalgorithmzoo.org/. 
  10. "Shannon-Fano-Elias Coding". https://my.ece.msstate.edu/faculty/fowler/Classes/ECE8813/Handouts/shannon_fano_elias.pdf. 
  11. "Archived copy". http://www.vision.ee.ethz.ch/~surf/eccv06.pdf. 
  12. "Archived copy". http://glorfindel.mavrinac.com/~aaron/school/pdf/bay06_surf.pdf. 

Template:Algorithmic paradigms