- Quick Sort
- Merge Sort
- Heap Sort
- Bubble Sort
- Insertion Sort
- Selection Sort
- Binary Search
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Dijkstra’s Algorithm
- A* Search Algorithm
- Kruskal’s Algorithm
- Prim’s Algorithm
- Bellman-Ford Algorithm
- Fibonacci Sequence
- Knapsack Problem
- Longest Common Subsequence
- Longest Increasing Subsequence
- Coin Change Problem
- Edit Distance
- Activity Selection Problem
- Huffman Coding
- Prim's Algorithm (as Greedy)
- Kruskal's Algorithm (as Greedy)
- Dijkstra’s Algorithm (as Greedy)
- N-Queens Problem
- Sudoku Solver
- Subset Sum Problem
- Permutations and Combinations
- Knuth-Morris-Pratt (KMP) Algorithm
- Rabin-Karp Algorithm
- Longest Common Substring
- Longest Palindromic Substring
- Trie Data Structure
- Inorder Traversal
- Preorder Traversal
- Postorder Traversal
- Binary Search Tree (BST) Operations
- AVL Tree
- Red-Black Tree
- Segment Tree
- Fenwick Tree (Binary Indexed Tree)
- Greatest Common Divisor (GCD)
- Sieve of Eratosthenes
- Fast Exponentiation
- Prime Factorization
- Euclidean Algorithm
- Heap
- Trie
- Segment Tree
- Fenwick Tree (Binary Indexed Tree)
- Disjoint Set (Union-Find)
- Hash Table
- LeetCode
- HackerRank
- GeeksforGeeks
- CodeSignal
- Practice problems regularly
- Understand the theory behind each algorithm
- Implement algorithms from scratch
- Review and debug your solutions
- Time yourself during practice sessions
- Array
- Strings
- hash tables
- search
- Sorting
- Recursion
- Stacks
- problem solving