### Graph algorithm

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

## Combinatorial algorithms

### Graph algorithms

#### Graph drawing

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

### Sequence algorithms

#### Sequence Merging

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

#### Sequence Sorting

Main article: Sorting algorithms
• Exchange Sorts
• Bubble sort: for each pair of indices, swap the items if out of order
• Cocktail sort
• 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 science

### Geoscience

• Vincenty's formulae: a fast algorithm to calculate the distance between two latitude/longitude points on an ellipsoid

### Linguistics

• 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

## Information theory and signal processing

### Digital signal processing

• Adaptive-additive algorithm (AA algorithm): find the spatial frequency phase of an observed wave source
• Discrete Fourier transform: determines the frequencies contained in a (segment of a) signal
• Fast folding algorithm: an efficient algorithm for the detection of approximately periodic events within time series data
• Gerchberg–Saxton algorithm: Phase retrieval algorithm for optical planes
• Goertzel algorithm: identify a particular frequency component in a signal. Can be used for DTMF digit decoding.
• Karplus-Strong string synthesis: physical modelling synthesis to simulate the sound of a hammered or plucked string or some types of percussion