In the following sections, we touch different categories of algorithms, and implement or realize them using Python language.
Sorting Algorithms
- Python – Bubble Sort
- Python – Selection Sort
- Python – Insertion Sort
- Python – Merge Sort
- Python – Quick Sort
- Python – Heap Sort
Searching Algorithms
- Python – Linear Search
- Python – Binary Search
- Python – Depth-First Search (DFS)
- Python – Breadth-First Search (BFS)
- Python – Dijkstra’s Algorithm
- Python – KMP Algorithm (for pattern matching)
- Python – Rabin-Karp Algorithm (for pattern matching)
Graph Algorithms
- Python – Depth-First Search (DFS)
- Python – Breadth-First Search (BFS)
- Python – Dijkstra’s Algorithm
- Python – Bellman-Ford Algorithm
- Python – Floyd-Warshall Algorithm
- Python – Prim’s Algorithm
- Python – Kruskal’s Algorithm
- Python – Topological Sorting
Dynamic Programming
- Fibonacci Series
- Longest Common Subsequence (LCS)
- Knapsack Problem
- Coin Change Problem
- Matrix Chain Multiplication
- Longest Increasing Subsequence (LIS)
- Edit Distance
- Subset Sum
- 0/1 Knapsack Problem
- Rod Cutting Problem
Divide and Conquer
- Merge Sort
- Quick Sort
- Binary Search
- Strassen’s Matrix Multiplication
- Closest Pair of Points
- Karatsuba Algorithm (for fast multiplication)
Greedy Algorithms
- Activity Selection
- Huffman Coding
- Dijkstra’s Algorithm
- Kruskal’s Algorithm
- Fractional Knapsack Problem
Backtracking
- N-Queens Problem
- Sudoku Solver
- Hamiltonian Cycle
- Subset Sum
- Graph Coloring
String Matching Algorithms
- Brute Force
- Rabin-Karp Algorithm
- Knuth-Morris-Pratt (KMP) Algorithm
- Boyer-Moore Algorithm
- Trie Data Structure
Number Theory
- Euclidean Algorithm (for GCD)
- Sieve of Eratosthenes (for Prime Numbers)
- Extended Euclidean Algorithm
- Modular Exponentiation
- Chinese Remainder Theorem (CRT)
Computational Geometry
- Convex Hull
- Line Sweep Algorithm
- Graham’s Scan
- Closest Pair of Points
- Polygon Triangulation