List of algorithms

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

Automated planning

Combinatorial algorithms

General combinatorial algorithms

Graph algorithms

Graph drawing

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

Network theory

Routing for graphs

Subgraphs

Sequence algorithms

Approximate sequence matching

Selection algorithms

  • Linear search: finds an item in an unsorted sequence
  • Selection algorithm: finds the kth largest item in a sequence
  • 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
  • Sorted lists
    • Binary search algorithm: locates an item in a sorted sequence
    • Fibonacci search technique: search a sorted sequence using a divide and conquer algorithm that narrows down possible locations with the aid of Fibonacci numbers
    • Jump search (or block search): linear search on a smaller subset of the sequence
    • Predictive search: binary-like search which factors in magnitude of search term versus the high and low values in the search. Sometimes called dictionary search or interpolated search.
    • Uniform binary search: an optimization of the classic binary search algorithm

Sequence merging

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

Sequence permutations

Sequence alignment

Sequence sorting

Subsequences

  • Kadane's algorithm: finds maximum sub-array of any size
  • Longest common subsequence problem: Find the longest subsequence common to all sequences in a set of sequences
  • Longest increasing subsequence problem: Find the longest increasing subsequence of a given sequence
  • Shortest common supersequence problem: Find the shortest supersequence that contains two or more sequences as 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

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

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.

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

  • 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: generate 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

  • 3Dc: a lossy data compression algorithm for normal maps
  • Audio and Speech compression
  • Image compression
    • Block Truncation Coding (BTC): a type of lossy image compression technique for greyscale images
    • Embedded Zerotree Wavelet (EZW)
    • Fast Cosine Transform algorithms (FCT algorithms): compute Discrete Cosine Transform (DCT) efficiently
    • Fractal compression: method used to compress images using fractals
    • Set Partitioning in Hierarchical Trees (SPIHT)
    • Wavelet compression: form of data compression well suited for image compression (sometimes also video compression and audio compression)
  • Transform coding: type of data compression for "natural" data like audio signals or photographic images
  • Video compression
  • Vector quantization: technique often used in lossy data compression

Digital signal processing

Image processing

Software engineering

  • Cache algorithms
  • CHS conversion: converting between disk addressing systems
  • Double dabble: Convert binary numbers to BCD
  • Hash Function: convert a large, possibly variable-sized amount of data into a small datum, usually a single integer that may serve as an index into an array
  • Unicode Collation Algorithm
  • Xor swap algorithm: swaps the values of two variables without using a buffer

Database algorithms

Distributed systems algorithms

Memory allocation and deallocation algorithms

Networking

Operating systems algorithms

Process synchronization

Scheduling

I/O scheduling

Disk scheduling

See also

References

  1. "Archived copy" (PDF). Archived from the original (PDF) on 2013-10-06. Retrieved 2013-10-05.CS1 maint: archived copy as title (link)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.