Interactive tools to master algorithms. Click any card to start!
Choose a learning path based on what you want to study:
Search by checking each element one by one. The simplest search algorithm.
Compare O(n) vs O(log n) β see why algorithm choice matters as n grows!
Visualize how O(1), O(log n), O(n), O(nΒ²), O(2βΏ) grow with input size.
Solve recurrences T(n) = aT(n/b) + f(n) automatically.
Build sorted array one element at a time by inserting into correct position.
Divide array in half, sort recursively, merge sorted halves.
Select pivot, partition around it, recursively sort partitions.
Step-by-step visualization of the Lomuto partition scheme.
Build max-heap, repeatedly extract maximum to build sorted array.
Select maximum number of non-overlapping activities by earliest finish time.
Build optimal prefix-free binary codes for data compression.
Maximize value by taking fractions of items (greedy by value/weight).
Explore neighbors level by level. Finds shortest path in unweighted graphs.
Explore as deep as possible before backtracking. Used for connectivity, cycles.
Side-by-side comparison showing queue (BFS) vs stack (DFS) behavior.
Linear ordering of vertices in DAG where u comes before v for edge (u,v).
Find shortest paths from source to all vertices (non-negative weights).
Find shortest paths even with negative edges. Detects negative cycles.
Find all-pairs shortest paths using dynamic programming.
Classic example showing memoization vs tabulation approach.
See how memoization avoids redundant calls compared to naive recursion.
Find minimum coins to make a target amount.
Maximize value with weight constraint. Each item taken or left entirely.
Find longest sequence appearing in both strings in same order.
Minimum insertions, deletions, substitutions to transform one string to another.