Compare Algorithms

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

55 algorithms
AlgorithmCategoryDifficultyBestAverageWorstSpaceStable
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)—
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)—
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)—
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)—
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
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)—