Main algorithms to use.
Basic algorithms :
- Sorting – Merge Sort, Insertion Sort, Quick Sort, Number of inversions
- Matrix Multiplication (just know the algo if not implement it)
- Prime Sieving
- Modular Math including multiplication and division
- Euclidean Algorithm for GCD, Modular Inverse, Fast Exponentiation
- Fibonacci number with matrix multiplication
- Probability distribution and expected value
- Stats – Mean, Median, Variance, Bayes theorem
Linear data structures and algorithms:
- Arrays
- Linked List
- Stack
- Queues
Algorithmic techniques:
- Divide and Conquer – Binary Search, Maximum Subarray
- Greedy Algorithms – Activity Selection, Huffman encoding
- Dynamic Programming – Matrix Chain Multiplication, Knapsack,
- Linear Programming – Variable Maximisation, Linear time sorting
- String Algorithms – Manacher, LCS, Edit Distance
Typical non-linear data structures:
- Trees – Binary Tree, General Tree, Lowest Common Ancestor
- Binary Search Tree – Inorder Traversal, Level order traversal, finding kth largest element, diameter, depth, number of nodes, etc.
- Heaps – Array Implementation, Heapify, Heap Sort
- Union Find
- Hash Table – Linear Probing, Open addressing, Collision avoidance
Graphs:
- Adjacency List, Adjacency Matrix, Weighted Edge Graphs
- Basic Traversal algos – Breadth First Search, Depth First Search, etc
- Shortest Path Finding Algorithm – Dijkstra, Floyd Warshal, Bellman Ford
- Minimum Spanning Tree – Kruskal’s Algo, Prim’s Algo
Advance Tree and Graph :
- Balanced Trees – AVL, Red-Black
- Heavy Light Decomposition, B+ Trees, Quad Tree
- Advance Graph – Min Cut, Max Flow
- Maximum Matching – Hall’s Marriage
- Hamiltonian Cycle
- Edge Graphs / Line Graphs
- Strongly Connected Components
- Dominant Sub-Graph, Vertex Cover, Travelling Salesman – Approx algos
Advance String Algorithms :
- Knuth Morris Pratt Algorithm
- Rabin Karp Algorithm
- Tries and Compressed Tries
- Prefix Trees, Suffix Trees, Suffix Automation – Ukkonen Algorithm
Advance Math:
- Fast Fourier Tranformation
- Primality Testing
- Computational Geometry – Closest point pair, Voronoi diagram, Convex Hull
General Advance topics :
- Iterating through all combination / permutation
- Bit manipulation