Compare Algorithms
Sort and filter all 72 algorithms by complexity. Click column headers to sort.
72 algorithms
| Algorithm | Category | Difficulty | Best | Average | Worst | Space | Stable |
|---|---|---|---|---|---|---|---|
| Euclid Algorithm (GCD) | Advanced | beginner | O(log n) | O(log n) | O(log n) | O(1) | — |
| Chinese Remainder Theorem | Advanced | intermediate | O(k log M) | O(k log M) | O(k log M) | O(1) | — |
| Rabin-Karp | Advanced | intermediate | O(n + m) | O(n + m) | O(nm) | O(1) | — |
| KMP (Knuth-Morris-Pratt) | Advanced | intermediate | O(n + m) | O(n + m) | O(n + m) | O(m) | — |
| Boyer-Moore | Advanced | advanced | O(n/m) | O(n) | O(nm) | O(sigma) | — |
| Convex Hull (Graham Scan) | Advanced | intermediate | O(n log n) | O(n log n) | O(n log n) | O(n) | — |
| 0/1 Knapsack (Branch and Bound) | Advanced | advanced | O(2^n) | O(2^n) | O(2^n) | O(n) | — |
| Travelling Salesperson (Branch and Bound) | Advanced | advanced | O(n!) | O(n!) | O(n!) | O(n) | — |
| Max and Min (Divide and Conquer) | Advanced | beginner | O(n) | O(n) | O(n) | O(log n) | — |
| Strassen's Matrix Multiplication | Advanced | advanced | O(n^2.81) | O(n^2.81) | O(n^2.81) | O(n^2) | — |
| N-Queens | Backtracking | intermediate | O(n!) | O(n!) | O(n!) | O(n) | — |
| Sudoku Solver | Backtracking | intermediate | O(1) | O(9^m) | O(9^81) | O(81) | — |
| Generate Permutations | Backtracking | intermediate | O(n! × n) | O(n! × n) | O(n! × n) | O(n) | — |
| Subset Sum | Backtracking | intermediate | O(2^n) | O(2^n) | O(2^n) | O(n) | — |
| Hamiltonian Cycle | Backtracking | advanced | O(n!) | O(n!) | O(n!) | O(n) | — |
| Fibonacci (DP) | Dynamic Programming | beginner | O(n) | O(n) | O(n) | O(n) | — |
| 0/1 Knapsack | Dynamic Programming | intermediate | O(nW) | O(nW) | O(nW) | O(nW) | — |
| Longest Common Subsequence | Dynamic Programming | intermediate | O(mn) | O(mn) | O(mn) | O(mn) | — |
| Longest Increasing Subsequence | Dynamic Programming | intermediate | O(n log n) | O(n log n) | O(n log n) | O(n) | — |
| Coin Change | Dynamic Programming | intermediate | O(amount × coins) | O(amount × coins) | O(amount × coins) | O(amount) | — |
| Edit Distance | Dynamic Programming | intermediate | O(mn) | O(mn) | O(mn) | O(mn) | — |
| Matrix Chain Multiplication | Dynamic Programming | advanced | O(n³) | O(n³) | O(n³) | O(n²) | — |
| DP on Trees | Dynamic Programming | advanced | O(n) | O(n) | O(n) | O(n) | — |
| Subset Sum (DP) | Dynamic Programming | intermediate | O(nW) | O(nW) | O(nW) | O(nW) | — |
| Optimal Binary Search Tree | Dynamic Programming | advanced | O(n^3) | O(n^3) | O(n^3) | O(n^2) | — |
| Travelling Salesperson (DP / Held-Karp) | Dynamic Programming | advanced | O(n^2 * 2^n) | O(n^2 * 2^n) | O(n^2 * 2^n) | O(n * 2^n) | — |
| Breadth-First Search | Graphs | intermediate | O(V+E) | O(V+E) | O(V+E) | O(V) | — |
| Depth-First Search | Graphs | intermediate | O(V+E) | O(V+E) | O(V+E) | O(V) | — |
| Dijkstra's Algorithm | Graphs | intermediate | O((V+E) log V) | O((V+E) log V) | O((V+E) log V) | O(V) | — |
| Bellman-Ford | Graphs | intermediate | O(VE) | O(VE) | O(VE) | O(V) | — |
| Floyd-Warshall | Graphs | intermediate | O(V³) | O(V³) | O(V³) | O(V²) | — |
| A* Search | Graphs | advanced | O(E) | O(E log V) | O(V²) | O(V) | — |
| Prim's MST | Graphs | intermediate | O(E log V) | O(E log V) | O(E log V) | O(V) | — |
| Kruskal's MST | Graphs | intermediate | O(E log E) | O(E log E) | O(E log E) | O(V) | — |
| Topological Sort | Graphs | intermediate | O(V+E) | O(V+E) | O(V+E) | O(V) | — |
| Kosaraju's SCC | Graphs | advanced | O(V+E) | O(V+E) | O(V+E) | O(V) | — |
| Tarjan's SCC | Graphs | advanced | O(V+E) | O(V+E) | O(V+E) | O(V) | — |
| Sollin/Boruvka's MST | Graphs | intermediate | O(E log V) | O(E log V) | O(E log V) | O(V) | — |
| Activity Selection | Greedy | intermediate | O(n log n) | O(n log n) | O(n log n) | O(1) | — |
| Fractional Knapsack | Greedy | intermediate | O(n log n) | O(n log n) | O(n log n) | O(1) | — |
| Huffman Encoding | Greedy | intermediate | O(n log n) | O(n log n) | O(n log n) | O(n) | — |
| Job Sequencing | Greedy | intermediate | O(n log n) | O(n²) | O(n²) | O(n) | — |
| Optimal Merge Patterns | Greedy | intermediate | O(n log n) | O(n log n) | O(n log n) | O(n) | — |
| Linked List Traversal | Linked Lists | beginner | O(n) | O(n) | O(n) | O(1) | — |
| Linked List Insertion | Linked Lists | beginner | O(1) | O(n) | O(n) | O(1) | — |
| Linked List Deletion | Linked Lists | beginner | O(1) | O(n) | O(n) | O(1) | — |
| Linked List Reversal | Linked Lists | intermediate | O(n) | O(n) | O(n) | O(1) | — |
| Floyd's Cycle Detection | Linked Lists | intermediate | O(n) | O(n) | O(n) | O(1) | — |
| Linear Search | Searching | beginner | O(1) | O(n) | O(n) | O(1) | — |
| Binary Search | Searching | beginner | O(1) | O(log n) | O(log n) | O(1) | — |
| Jump Search | Searching | intermediate | O(1) | O(√n) | O(√n) | O(1) | — |
| Interpolation Search | Searching | intermediate | O(1) | O(log log n) | O(n) | O(1) | — |
| Exponential Search | Searching | intermediate | O(1) | O(log n) | O(log n) | O(1) | — |
| Bubble Sort | Sorting | beginner | O(n) | O(n²) | O(n²) | O(1) | Yes |
| Selection Sort | Sorting | beginner | O(n²) | O(n²) | O(n²) | O(1) | No |
| Insertion Sort | Sorting | beginner | O(n) | O(n²) | O(n²) | O(1) | Yes |
| Merge Sort | Sorting | intermediate | O(n log n) | O(n log n) | O(n log n) | O(n) | Yes |
| Quick Sort | Sorting | intermediate | O(n log n) | O(n log n) | O(n²) | O(log n) | No |
| Heap Sort | Sorting | intermediate | O(n log n) | O(n log n) | O(n log n) | O(1) | No |
| Counting Sort | Sorting | intermediate | O(n+k) | O(n+k) | O(n+k) | O(k) | Yes |
| Radix Sort | Sorting | intermediate | O(nk) | O(nk) | O(nk) | O(n+k) | Yes |
| Shell Sort | Sorting | intermediate | O(n log n) | O(n log² n) | O(n²) | O(1) | No |
| Tim Sort | Sorting | advanced | O(n) | O(n log n) | O(n log n) | O(n) | Yes |
| Bucket Sort | Sorting | intermediate | O(n + k) | O(n + k) | O(n^2) | O(n) | — |
| BST Insert & Search | Trees | intermediate | O(log n) | O(log n) | O(n) | O(h) | — |
| BST Deletion | Trees | intermediate | O(log n) | O(log n) | O(n) | O(h) | — |
| Inorder Traversal | Trees | beginner | O(n) | O(n) | O(n) | O(h) | — |
| Preorder & Postorder | Trees | beginner | O(n) | O(n) | O(n) | O(h) | — |
| Level Order Traversal | Trees | beginner | O(n) | O(n) | O(n) | O(w) | — |
| AVL Tree | Trees | advanced | O(log n) | O(log n) | O(log n) | O(n) | — |
| Segment Tree | Trees | advanced | O(log n) | O(log n) | O(log n) | O(n) | — |
| Fenwick Tree (BIT) | Trees | advanced | O(log n) | O(log n) | O(log n) | O(n) | — |