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)