V

Algorithm Visualizer

ZHEN
Share on WeiboShare on XGitHub repositoryAuthor website
Learning ToolsAlgorithm Complexity ReferenceAlgorithm Learning Paths
Data StructuresArrayLinked ListStackQueue and DequeBinary Search TreeBinary HeapHash TableGraphTrieDisjoint Set UnionLRU CacheSkip ListSegment TreeB+ TreeBloom FilterFenwick Tree
SortingBubble SortCocktail Shaker SortBitonic SortSelection SortInsertion SortBinary Insertion SortShell SortMerge SortTop-Down Merge SortQuick SortThree-Way Quick SortDual-Pivot Quick SortHeap SortCounting SortRadix SortBucket Sort
Graph AlgorithmsDijkstra's Shortest PathKruskal's Minimum Spanning TreePrim's Minimum Spanning TreeBellman-Ford Shortest PathsTopological SortFloyd-WarshallStrongly Connected Components2-SATMaximum FlowBipartite MatchingLowest Common AncestorEulerian Path
Dynamic ProgrammingEdit Distance0/1 KnapsackUnbounded KnapsackLongest Common SubsequenceLongest Increasing SubsequenceCoin ChangeStone MergingTraveling Salesperson DPTree Dynamic ProgrammingDigit DPRerooting DP
Backtracking and SearchN-QueensSubsetsPermutationsCombination SumMaze Solving with DFSNumber of IslandsWord SearchSudoku SolverA* Search
StringsKMP String MatchingRabin-Karp String MatchingBoyer-Moore String MatchingManacher's Longest Palindromic SubstringSuffix ArrayLCP ArrayAho-Corasick AutomatonZ Function
Math and Number TheorySieve of EratosthenesLinear SieveEuclidean AlgorithmBinary ExponentiationExtended Euclidean AlgorithmChinese Remainder TheoremEuler's Totient FunctionMiller-Rabin Primality TestFast Fourier TransformPollard's Rho Factorization
Computational GeometryConvex HullRotating CalipersClosest Pair of PointsLine Segment IntersectionBentley-Ottmann Sweep Line
SearchingBinary SearchLower and Upper BoundSearch in a Rotated Sorted ArrayBinary Search on the AnswerTernary Search

Algorithm Learning Paths

Focused routes through every translated learning page in the catalog

Each route is intentionally small. Work through the pages in order, use the player controls instead of passively watching, and check the complexity reference whenever two approaches feel similar.

Foundations 21 stops

Build a feel for logarithmic elimination, partitioning, and compact cumulative data.

  1. 1Array->
  2. 2Linked List->
  3. 3Stack->
  4. 4Queue and Deque->
  5. 5Binary Search Tree->
  6. 6Binary Heap->
  7. 7Hash Table->
  8. 8Graph->
  9. 9Trie->
  10. 10Disjoint Set Union->
  11. 11LRU Cache->
  12. 12Skip List->
  13. 13Segment Tree->
  14. 14B+ Tree->
  15. 15Bloom Filter->
  16. 16Fenwick Tree->
  17. 17Binary Search->
  18. 18Lower and Upper Bound->
  19. 19Search in a Rotated Sorted Array->
  20. 20Binary Search on the Answer->
  21. 21Ternary Search

Sorting Systems 16 stops

Compare how different invariants move values into their final order.

  1. 1Bubble Sort->
  2. 2Cocktail Shaker Sort->
  3. 3Bitonic Sort->
  4. 4Selection Sort->
  5. 5Insertion Sort->
  6. 6Binary Insertion Sort->
  7. 7Shell Sort->
  8. 8Merge Sort->
  9. 9Top-Down Merge Sort->
  10. 10Quick Sort->
  11. 11Three-Way Quick Sort->
  12. 12Dual-Pivot Quick Sort->
  13. 13Heap Sort->
  14. 14Counting Sort->
  15. 15Radix Sort->
  16. 16Bucket Sort

Graph Structure 12 stops

Build paths and global structure by processing vertices and edges safely.

  1. 1Dijkstra's Shortest Path->
  2. 2Kruskal's Minimum Spanning Tree->
  3. 3Prim's Minimum Spanning Tree->
  4. 4Bellman-Ford Shortest Paths->
  5. 5Topological Sort->
  6. 6Floyd-Warshall->
  7. 7Strongly Connected Components->
  8. 82-SAT->
  9. 9Maximum Flow->
  10. 10Bipartite Matching->
  11. 11Lowest Common Ancestor->
  12. 12Eulerian Path

Dynamic Programming 11 stops

Define states, preserve dependencies, and reuse solved subproblems.

  1. 1Edit Distance->
  2. 20/1 Knapsack->
  3. 3Unbounded Knapsack->
  4. 4Longest Common Subsequence->
  5. 5Longest Increasing Subsequence->
  6. 6Coin Change->
  7. 7Stone Merging->
  8. 8Traveling Salesperson DP->
  9. 9Tree Dynamic Programming->
  10. 10Digit DP->
  11. 11Rerooting DP

Backtracking 9 stops

Choose, validate, recurse, and undo while exploring a constrained search space.

  1. 1N-Queens->
  2. 2Subsets->
  3. 3Permutations->
  4. 4Combination Sum->
  5. 5Maze Solving with DFS->
  6. 6Number of Islands->
  7. 7Word Search->
  8. 8Sudoku Solver->
  9. 9A* Search

String Structure 8 stops

Preprocess reusable structure so comparisons can skip repeated work.

  1. 1KMP String Matching->
  2. 2Rabin-Karp String Matching->
  3. 3Boyer-Moore String Matching->
  4. 4Manacher's Longest Palindromic Substring->
  5. 5Suffix Array->
  6. 6LCP Array->
  7. 7Aho-Corasick Automaton->
  8. 8Z Function

Number Theory 10 stops

Follow divisibility invariants through prime generation and greatest divisors.

  1. 1Sieve of Eratosthenes->
  2. 2Linear Sieve->
  3. 3Euclidean Algorithm->
  4. 4Binary Exponentiation->
  5. 5Extended Euclidean Algorithm->
  6. 6Chinese Remainder Theorem->
  7. 7Euler's Totient Function->
  8. 8Miller-Rabin Primality Test->
  9. 9Fast Fourier Transform->
  10. 10Pollard's Rho Factorization

Geometry 5 stops

Use orientation and distance invariants to reason about point sets.

  1. 1Convex Hull->
  2. 2Rotating Calipers->
  3. 3Closest Pair of Points->
  4. 4Line Segment Intersection->
  5. 5Bentley-Ottmann Sweep Line