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