Hello,
Its been sometime that i have solving problems on various coding sites and i have realized there are some algorithms needed for many problems so after going through a lot of tutorials and blogs i found these algorithms that are commonly used in solving those problems.
1.Segment tree (with lazy propagation)
2.Interval Tree
3.Binary Indexed Tree
4.Fast Modulo Multiplication (Exponential Squaring)
5.Heuristic Algorithms
6.KMP string searching
7.Manacher’s Algorithm
8.Euclid’s GCD Algorithm
9.Extended Euclid’s algorithm
10.Binary Search, Ternary Search
11.Sieve of Eratosthenes for finding primes
12.Fast Fourier Transformation for fast polynomial multiplication
13.Graph algorithms - BFS, DFS, finding connected components
14.Djikstra’s algorithm, Bellman-ford algorithm, Floyd-Warshall Algorithm
15.Prim’s Algorithm, Kruskal’s Algorithm
16.RMQ, LCA
17.Flow related algorithms, assignment problem, Hungarian algorithm
18.Bipartite matching algorithms
19.Heavy-light decomposition
20.Sweep line algorithm
21.Z algorithm
22.Union Find/Disjoint Set
23.Trie
24.Prime Miller Rabin
25.Matrix Recurrence + Fast Modulo Multiplication for counting
26.Stable Marriage Problem
27.Extended Euclid’s algorithm
28.Ternary Search
29.Fast Fourier Transform for fast polynomial multiplication
30.Djikstra’s algorithm, Bellman-ford algorithm, Floyd-Warshall Algorithm
31.Prim’s Algorithm, Kruskal’s Algorithm
32.RMQ, LCA
33.Flow related algorithms, assignment problem, Hungarian algorithm
34.Bipartite matching algorithms
35.Heavy-light decomposition
36.Sweep line algorithm
37.Z algorithm
38.Convex Hull
39.Suffix Arrays
40.LCP
41.Suffix Tree
42.Gaussian Elimination
43.Numerical Integration/Differentiation
44.Line Clipping
45.Advanced Maths Ad-Hoc problems
46.Aho–Corasick string matching algorithm;
47.Calculate nCr % M Lucas’s Theorem
48.Heavy Light decomposition in trees
49.Inverse Modulo operations
50.Pollard Rho Integer Factorization
Catalan Numbers