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

Network theory

Routing for graphs

  • A*: special case of best-first search that uses heuristics to improve speed
  • B*: a best-first graph search algorithm that finds the least-cost path from a given initial node to any goal node (out of one or more possible goals)
  • Backtracking: abandons partial solutions when they are found not to satisfy a complete solution
  • Beam search: is a heuristic search algorithm that is an optimization of best-first search that reduces its memory requirement
  • Beam stack search: integrates backtracking with beam search
  • Best-first search: traverses a graph in the order of likely importance using a priority queue
  • Bidirectional search: find the shortest path from an initial vertex to a goal vertex in a directed graph
  • Bloom filter: a constant time and memory check to see whether a given element exists in a set. May return a false positive, but never a false negative.
  • Breadth-first search: traverses a graph level by level
  • Brute-force search: An exhaustive and reliable search method, but computationally inefficient in many applications.
  • D*: an incremental heuristic search algorithm
  • Depth-first search: traverses a graph branch by branch
  • Dijkstra's algorithm: A special case of A* for which no heuristic function is used
  • General Problem Solver: a seminal theorem-proving algorithm intended to work as a universal problem solver machine.
  • Iterative deepening depth-first search (IDDFS): a state space search strategy
  • Jump point search: An optimization to A* which may reduce computation time by an order of magnitude using further heuristics.
  • Lexicographic breadth-first search (also known as Lex-BFS): a linear time algorithm for ordering the vertices of a graph
  • Uniform-cost search: a tree search that finds the lowest cost route where costs vary
  • SSS*: state space search traversing a game tree in a best-first fashion similar to that of the A* search algorithm


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: compute 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

Sequence merging

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

Sequence permutations

Sequence alignment

Sequence sorting

  • 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
  • Hybrid
    • Flashsort
    • Introsort: begin with quicksort and switch to heapsort when the recursion depth exceeds a certain level
    • Timsort: adaptative algorithm derived from merge sort and insertion sort. Used in Python 2.3 and up, and Java SE 7.
  • Insertion sorts
    • Insertion sort: determine where the current item belongs in the list of sorted ones, and insert it there
    • Library sort
    • Patience sorting
    • Shell sort: an attempt to improve insertion sort
    • Tree sort (binary tree sort): build binary tree, then traverse it to create sorted list
    • Cycle sort: in-place with theoretically optimal number of writes
  • Merge sorts
    • Merge sort: sort the first and second half of the list separately, then merge the sorted lists
    • Strand sort
  • Non-comparison sorts
  • Selection sorts
    • Heapsort: convert the list into a heap, keep removing the largest element from the heap and adding it to the end of the list
    • Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
    • Smoothsort
  • Other
  • Unknown class



Computational mathematics

Abstract algebra

Computer algebra


Number theoretic algorithms

Numerical algorithms

Differential equation solving

Elementary and special functions


Interpolation and extrapolation

Linear algebra

Monte Carlo

Numerical integration

Root finding

Optimization algorithms

Computational science




  • 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


  • Lesk algorithm: word sense disambiguation
  • Stemming algorithm: a method of reducing words to their stem, base, or root form
  • Sukhotin's algorithm: a statistical classification algorithm for classifying characters in a text as vowels or consonants




Computer science

Computer architecture

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

Computer graphics


Digital logic

Machine learning and statistical classification

Programming language theory


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


Operating systems algorithms

Process synchronization


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


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