##Algorithms
This is my attempt to create a list of algorithms for myself (and others) to learn them and to use as a reference.
###Algorithms implemented
####Dynamic Programming
- Strings
- Levenshtein Distance
- Longest Common Subsequence
- Longest Common Substring
####Graphs
- Shortest Paths
- Dijkstra's algorithm
- Bellman-Ford algorithm
- Floyd-Warshall algorithm
- Maximum Flow
- Ford-Fulkerson algorithm
- Edmonds-Karp algorithm
- Minimum Spanning Trees
- Prim's algorithm
- Kruskal's algorithm
####Mathematics
- Prime Sieves
- Sieve of Eratosthenes
- Sieve of Atkins
- Root Finding
- Newton's Method
- Bisection Method
- Brent's Method
- Signals
- Slow Discrete Fourier Transform
- Cooley Tukey Fast Fourier Transform
- Geometry
- 2D Convex Hull (gift wrapping algorithm)
- Closest Pair of Points
####Sorts
- Heap Sort
- Merge Sort
- Recursive
- Iterative
- Quick Sort
####Strings
- Searching
- Naive string search
- Rabin-Karp algorithm
- Knuth-Morris-Pratt
###Contributing
Please submit a pull request to add more to this repo. But if you do, please thoroughly unit test the changes to ensure that they are correct. For a list of things to do, see TODO.txt.