Source: ####Graph algorithms
- Breadth first search(BFS)
- Depth first search(DFS)
- Strongly connected components(SCC)
- Dijkstra
- Floyd-Warshall
- Minimum spanning tree(MST)
- Topological sort
- Standard dynamic programming problems such as Rod Cutting, Knapsack, Matrix chain multiplication etc.
- Modular arithmetic
- Fermat’s theorem
- Chinese remainder theorem(CRT)
- Euclidian method for GCD
- Logarithmic Exponentiation
- Sieve of Eratosthenes
- Euler’s totient function.
- Standard problems such as Activity selection.
- Binary search
- Ternary search
- Meet in the middle
- Stacks
- Queues
- Trees
- Heaps
- Trie
- Segment trees
- Fenwick tree or Binary indexed tree(BIT)
- Disjoint data structures.
- Knuth Morris Pratt(KMP)
- Z algorithm
- Suffix arrays/Suffix trees. These are bit advanced algorithms.
- Graham-Scan for convex hull
- Line sweep.
- Basic principles of Nim game
- Grundy numbers
- Sprague-Grundy theorem.