Compare Algorithms

Sort and filter all 72 algorithms by complexity. Click column headers to sort.

72 algorithms
AlgorithmCategoryDifficultyBestAverageWorstSpaceStable
Euclid Algorithm (GCD)AdvancedbeginnerO(log n)O(log n)O(log n)O(1)
Chinese Remainder TheoremAdvancedintermediateO(k log M)O(k log M)O(k log M)O(1)
Rabin-KarpAdvancedintermediateO(n + m)O(n + m)O(nm)O(1)
KMP (Knuth-Morris-Pratt)AdvancedintermediateO(n + m)O(n + m)O(n + m)O(m)
Boyer-MooreAdvancedadvancedO(n/m)O(n)O(nm)O(sigma)
Convex Hull (Graham Scan)AdvancedintermediateO(n log n)O(n log n)O(n log n)O(n)
0/1 Knapsack (Branch and Bound)AdvancedadvancedO(2^n)O(2^n)O(2^n)O(n)
Travelling Salesperson (Branch and Bound)AdvancedadvancedO(n!)O(n!)O(n!)O(n)
Max and Min (Divide and Conquer)AdvancedbeginnerO(n)O(n)O(n)O(log n)
Strassen's Matrix MultiplicationAdvancedadvancedO(n^2.81)O(n^2.81)O(n^2.81)O(n^2)
N-QueensBacktrackingintermediateO(n!)O(n!)O(n!)O(n)
Sudoku SolverBacktrackingintermediateO(1)O(9^m)O(9^81)O(81)
Generate PermutationsBacktrackingintermediateO(n! × n)O(n! × n)O(n! × n)O(n)
Subset SumBacktrackingintermediateO(2^n)O(2^n)O(2^n)O(n)
Hamiltonian CycleBacktrackingadvancedO(n!)O(n!)O(n!)O(n)
Fibonacci (DP)Dynamic ProgrammingbeginnerO(n)O(n)O(n)O(n)
0/1 KnapsackDynamic ProgrammingintermediateO(nW)O(nW)O(nW)O(nW)
Longest Common SubsequenceDynamic ProgrammingintermediateO(mn)O(mn)O(mn)O(mn)
Longest Increasing SubsequenceDynamic ProgrammingintermediateO(n log n)O(n log n)O(n log n)O(n)
Coin ChangeDynamic ProgrammingintermediateO(amount × coins)O(amount × coins)O(amount × coins)O(amount)
Edit DistanceDynamic ProgrammingintermediateO(mn)O(mn)O(mn)O(mn)
Matrix Chain MultiplicationDynamic ProgrammingadvancedO(n³)O(n³)O(n³)O(n²)
DP on TreesDynamic ProgrammingadvancedO(n)O(n)O(n)O(n)
Subset Sum (DP)Dynamic ProgrammingintermediateO(nW)O(nW)O(nW)O(nW)
Optimal Binary Search TreeDynamic ProgrammingadvancedO(n^3)O(n^3)O(n^3)O(n^2)
Travelling Salesperson (DP / Held-Karp)Dynamic ProgrammingadvancedO(n^2 * 2^n)O(n^2 * 2^n)O(n^2 * 2^n)O(n * 2^n)
Breadth-First SearchGraphsintermediateO(V+E)O(V+E)O(V+E)O(V)
Depth-First SearchGraphsintermediateO(V+E)O(V+E)O(V+E)O(V)
Dijkstra's AlgorithmGraphsintermediateO((V+E) log V)O((V+E) log V)O((V+E) log V)O(V)
Bellman-FordGraphsintermediateO(VE)O(VE)O(VE)O(V)
Floyd-WarshallGraphsintermediateO(V³)O(V³)O(V³)O(V²)
A* SearchGraphsadvancedO(E)O(E log V)O(V²)O(V)
Prim's MSTGraphsintermediateO(E log V)O(E log V)O(E log V)O(V)
Kruskal's MSTGraphsintermediateO(E log E)O(E log E)O(E log E)O(V)
Topological SortGraphsintermediateO(V+E)O(V+E)O(V+E)O(V)
Kosaraju's SCCGraphsadvancedO(V+E)O(V+E)O(V+E)O(V)
Tarjan's SCCGraphsadvancedO(V+E)O(V+E)O(V+E)O(V)
Sollin/Boruvka's MSTGraphsintermediateO(E log V)O(E log V)O(E log V)O(V)
Activity SelectionGreedyintermediateO(n log n)O(n log n)O(n log n)O(1)
Fractional KnapsackGreedyintermediateO(n log n)O(n log n)O(n log n)O(1)
Huffman EncodingGreedyintermediateO(n log n)O(n log n)O(n log n)O(n)
Job SequencingGreedyintermediateO(n log n)O(n²)O(n²)O(n)
Optimal Merge PatternsGreedyintermediateO(n log n)O(n log n)O(n log n)O(n)
Linked List TraversalLinked ListsbeginnerO(n)O(n)O(n)O(1)
Linked List InsertionLinked ListsbeginnerO(1)O(n)O(n)O(1)
Linked List DeletionLinked ListsbeginnerO(1)O(n)O(n)O(1)
Linked List ReversalLinked ListsintermediateO(n)O(n)O(n)O(1)
Floyd's Cycle DetectionLinked ListsintermediateO(n)O(n)O(n)O(1)
Linear SearchSearchingbeginnerO(1)O(n)O(n)O(1)
Binary SearchSearchingbeginnerO(1)O(log n)O(log n)O(1)
Jump SearchSearchingintermediateO(1)O(√n)O(√n)O(1)
Interpolation SearchSearchingintermediateO(1)O(log log n)O(n)O(1)
Exponential SearchSearchingintermediateO(1)O(log n)O(log n)O(1)
Bubble SortSortingbeginnerO(n)O(n²)O(n²)O(1)Yes
Selection SortSortingbeginnerO(n²)O(n²)O(n²)O(1)No
Insertion SortSortingbeginnerO(n)O(n²)O(n²)O(1)Yes
Merge SortSortingintermediateO(n log n)O(n log n)O(n log n)O(n)Yes
Quick SortSortingintermediateO(n log n)O(n log n)O(n²)O(log n)No
Heap SortSortingintermediateO(n log n)O(n log n)O(n log n)O(1)No
Counting SortSortingintermediateO(n+k)O(n+k)O(n+k)O(k)Yes
Radix SortSortingintermediateO(nk)O(nk)O(nk)O(n+k)Yes
Shell SortSortingintermediateO(n log n)O(n log² n)O(n²)O(1)No
Tim SortSortingadvancedO(n)O(n log n)O(n log n)O(n)Yes
Bucket SortSortingintermediateO(n + k)O(n + k)O(n^2)O(n)
BST Insert & SearchTreesintermediateO(log n)O(log n)O(n)O(h)
BST DeletionTreesintermediateO(log n)O(log n)O(n)O(h)
Inorder TraversalTreesbeginnerO(n)O(n)O(n)O(h)
Preorder & PostorderTreesbeginnerO(n)O(n)O(n)O(h)
Level Order TraversalTreesbeginnerO(n)O(n)O(n)O(w)
AVL TreeTreesadvancedO(log n)O(log n)O(log n)O(n)
Segment TreeTreesadvancedO(log n)O(log n)O(log n)O(n)
Fenwick Tree (BIT)TreesadvancedO(log n)O(log n)O(log n)O(n)