# List of algorithms

(Redirected from Graph algorithms)

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

## Combinatorial algorithms

### Sequence algorithms

#### Sequence merging

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

#### 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
• 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
• Geohash: a public domain algorithm that encodes a decimal latitude/longitude pair as a hash string

## Computer science

### Computer architecture

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