Boruvka's algorithm: finds a minimum spanning tree for a graph
Ford-Fulkerson algorithm: computes the maximum flow in a graph
Edmonds-Karp algorithm: implementation of Ford-Fulkerson
Nonblocking Minimal Spanning Switch say for a telephone exchange
Spring based algorithm: algorithm for graph drawing
Topological sort
Search algorithms
Linear search: finds an item in an unsorted list
Selection algorithm: finds the kth largest item in a list
Binary search: locates an item in a sorted list
Binary search tree
Breadth-first search: traverses a graph level by level
Depth-first search: traverses a graph branch by branch
Best-first search: traverses a graph in the order of likely importance using a priority queue
A* tree search: special case of best-first search
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
Hash table: finds an item in an unsorted collection in O(1) time
String searching algorithms
Knuth-Morris-Pratt algorithm
Rabin-Karp string search algorithm
Boyer-Moore string search algorithm
Aho-Corasick algorithm
Sort algorithms
Binary tree sort
Bogosort: humorous and slow
Bubble sort: for each pair of indices swap the items if out of order
Bucket sort
Comb sort
Cocktail sort
Counting sort
Gnome sort
Heapsort: convert the list into a heap keep removing the largest element from the heap and adding it to the end of the list
Insertion sort: determine where the current item belongs in the list of sorted ones and insert it there
Merge sort: sort the first and second half of the list separately then merge the sorted lists
Pancake sorting
Pigeonhole 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
Radix sort: sorts strings letter by letter
Selection sort: pick the smallest of the remaining elements add it to the end of the sorted list