A storage for the most commonly used algorithms and data structures.
Please note that we are currently working to make this library as usefull as possible, by adding kind of readme file to every code, which contains important pieces of information such as detailed instructions how to use it, what is the input/output and some significant assumptions we made during the process of implementation. We are also providing information about the problems (usually from spoj.com and spoj.pl) solved by explicit or implicit (i.e. some easy modification) usage of a particular algo.
You may consider it as a spoiler in some case, so be aware that our intention is to deliver you a confirmation of correctness of a particular implementation, not a detailed solution.
However in early development some of the codes may be flaged as [UNTESTED] just to inform you, that they might have a nonzero probability of failing in some cases :-) Still we are doing our best to avoid that uncertainity.
###Graph algorithms
- Breadth First Search
- Breadth First Search on grid
- Depth First Search
- Depth First Search on grid
- Maximal Flow - Dinic algorithm
- Maximal Matching - Hopcroft-Karp algorithm
- Minimal Spanning Tree - Kruskal algorithm
- Strongly Connected Components
- Shortest Paths - Bellman-Ford algorithm
- Shortest Paths - Dijkstra algorithm
- Shortest Paths - Floyd-Warshall algorithm
- Topological sort using DFS
- Topological sort using elimination
###Sorting algorithms
###Numerical algorithms
###Combinatorical algorithms
###Text algorithms
###Cryptographic algorithms
###Dynamic approach algorithms
###Computentional geometry
###Data structures
###Libraries###Graph algorithms
- Articulation points and bridges
- Eulerian traversal
- Hamiltonian traversal
- Traveling Salesman Problem
- Minimal Spanning Tree - Prim algorithm
- Lowest Common Ancestor - Trajan algorithm
- Some connectivity algos
###Sorting algorithms
- InsertionSort
- SelectSort
- BubbleSort
###Numerical algorithms
- Basic Euclidean algorithm
- Extended Euclidean algorithm - diofantic equations
- Factorisation
- Modular Inverse
- Basic Sieve of Eratosthenes
- Segmented Sieve of Eratosthenes
- Newton's Symbol
- Sign of permutation
- Basic Sieve of Eratosthenes
- Basic Sieve of Eratosthenes
- Some generation algorithms (including De Brujin's sequences)
###Text algorithms
- KMP 2D
- Cyclic equality
###Cryptographic algorithms
- Basic Caesar
- Playfair
- Vigenere
###Dynamic approach algorithms
- 0-1 Knapsack Problem
- Bounded Knapsack Problem
- Unbounded Knapsack Problem
- Longest common subsequence
- String distance
- Longest increasing subsequence
- And moar
###Computentional geometry
- Convex Hull
- Hell lot of things
###Data structures
- Static list
- Static queue
- Static stack
- Static heap
- Static tree
- Dynamic list
- Dynamic queue
- Dynamic stack
- Dynamic heap
- Dynamic tree
- Binary Search Tree
- Red-Black Tree
- AVL Tree
- Segment Tree
- Binary Indexed Tree
- Statistic Tree
- Disjoint Set Forest
###Libraries
- BigNums
- Matrix
- Complex Numbers
- Fractions
AND MAYBE SOME SIMPLEX!!!1111oneone :D:D:D:D:D:D