Professional Documents
Culture Documents
If you need the implementation of any of the algorithms mentioned here, just write to me
Graph Algorithms
Basic algorithms like BFS, DFS, topological Sorting, Strongly Connected Components etc.
Bellman Ford and Dijkstra's algorithm ( single source shortest paths )
Prim's and Kruskal Algorithm (generation of minimum spanning tree), Kruskals implemented using the Disjoint S
Structure
Dynamic Programming in tree to reduce many O(n2) algorithms to O(n).
Diameter of a tree using Breadth First Search.
Dominance tree from a flow graph in O(E*alpha(V,E)) where alpha is the functional inverse of ackerman's function
Data Structures
Dancing Links(dlx) by Knuth to solve Exact Cover problem very efficiently. Exact cover is an NP-Complete problem
popular problems like Sudoku Problem, Tiling Problem, N-Queens problem are an example of Exact Cover problem an
efficiently solved using the data structure
Disjoint Set data structure using weighted Union and path compression heuristics
Integer and string hashing methods (through trie etc.)
2-d and 1-d segment tree. ( for Computational geometry and other query processing systems).
Fenwick Tree.
Range minimum/maximum query [O(n,1) preprocessing and query processing complexity ].
String Algorithms
Number Theory
Prime detection Algorithms such as Fermat test , Miller's test , Solovey-Strassen test
Solution to modular equations and Extended Euclidean Algorithm.
Pollard Rho's Algorithm and Continued Fraction approach for factorizing large numbers.
Fast Fourier Transform ( Used in BigInteger class multiplication operation ).
Computational Geometry
Linear Algebra
Apart from these, several Dynamic Programming and greedy Algorithms and a BigInteger class have also been
implemented.