Companion repository to Stepsort β interactive algorithm visualizations.
Every solution here has a step-by-step animated walkthrough on the website. Click the π¬ links below to watch one execute before reading the code.
300 algorithms Β· Python Β· C++ Β· Java β all compile-checked weekly by CI.
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Bubble Sort | py | cpp | java | π¬ Watch |
| Selection Sort | py | cpp | java | π¬ Watch |
| Insertion Sort | py | cpp | java | π¬ Watch |
| Merge Sort | py | cpp | java | π¬ Watch |
| Quick Sort | py | cpp | java | π¬ Watch |
| Heap Sort | py | cpp | java | π¬ Watch |
| Counting Sort | py | cpp | java | π¬ Watch |
| Radix Sort | py | cpp | java | π¬ Watch |
| Shell Sort | py | cpp | java | π¬ Watch |
| Bucket Sort | py | cpp | java | π¬ Watch |
| Cocktail Shaker Sort | py | cpp | java | π¬ Watch |
| Comb Sort | py | cpp | java | π¬ Watch |
| Gnome Sort | py | cpp | java | π¬ Watch |
| Tim Sort | py | cpp | java | π¬ Watch |
| Pigeonhole Sort | py | cpp | java | π¬ Watch |
| Cycle Sort | py | cpp | java | π¬ Watch |
| Strand Sort | py | cpp | java | π¬ Watch |
| Pancake Sort | py | cpp | java | π¬ Watch |
| Bogo Sort | py | cpp | java | π¬ Watch |
| Bitonic Sort | py | cpp | java | π¬ Watch |
| Tree Sort | py | cpp | java | π¬ Watch |
| IntroSort | py | cpp | java | π¬ Watch |
| Dutch National Flag | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Linear Search | py | cpp | java | π¬ Watch |
| Binary Search | py | cpp | java | π¬ Watch |
| Jump Search | py | cpp | java | π¬ Watch |
| Interpolation Search | py | cpp | java | π¬ Watch |
| Exponential Search | py | cpp | java | π¬ Watch |
| Ternary Search | py | cpp | java | π¬ Watch |
| Fibonacci Search | py | cpp | java | π¬ Watch |
| Sentinel Linear Search | py | cpp | java | π¬ Watch |
| Two Pointer Search | py | cpp | java | π¬ Watch |
| Depth-Limited Search | py | cpp | java | π¬ Watch |
| Iterative Deepening DFS | py | cpp | java | π¬ Watch |
| Bidirectional Search | py | cpp | java | π¬ Watch |
| Binary Search on Answer | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| BFS | py | cpp | java | π¬ Watch |
| DFS | py | cpp | java | π¬ Watch |
| Dijkstra's | py | cpp | java | π¬ Watch |
| Bellman-Ford | py | cpp | java | π¬ Watch |
| Floyd-Warshall | py | cpp | java | π¬ Watch |
| Kruskal's MST | py | cpp | java | π¬ Watch |
| Prim's MST | py | cpp | java | π¬ Watch |
| Topological Sort | py | cpp | java | π¬ Watch |
| A Search* | py | cpp | java | π¬ Watch |
| Graph Coloring | py | cpp | java | π¬ Watch |
| Cycle Detection | py | cpp | java | π¬ Watch |
| Tarjan's SCC | py | cpp | java | π¬ Watch |
| Bridges & Articulation Points | py | cpp | java | π¬ Watch |
| Kosaraju's SCC | py | cpp | java | π¬ Watch |
| Eulerian Path/Circuit | py | cpp | java | π¬ Watch |
| Hamiltonian Path | py | cpp | java | π¬ Watch |
| Bipartite Check | py | cpp | java | π¬ Watch |
| Ford-Fulkerson Max Flow | py | cpp | java | π¬ Watch |
| Johnson's Algorithm | py | cpp | java | π¬ Watch |
| Union-Find (DSU) | py | cpp | java | π¬ Watch |
| 0-1 BFS | py | cpp | java | π¬ Watch |
| DAG Shortest Path | py | cpp | java | π¬ Watch |
| Boruvka's MST | py | cpp | java | π¬ Watch |
| Biconnected Components | py | cpp | java | π¬ Watch |
| Offline Dynamic Connectivity | py | cpp | java | π¬ Watch |
| Konig's Min Vertex Cover | py | cpp | java | π¬ Watch |
| Blossom Algorithm (Edmonds) | py | cpp | java | π¬ Watch |
| Capacity Scaling Max Flow | py | cpp | java | π¬ Watch |
| Multi-Source 0-1 BFS | py | cpp | java | π¬ Watch |
| DAG Dynamic Programming | py | cpp | java | π¬ Watch |
| General Graph Matching | py | cpp | java | π¬ Watch |
| Minimum Cut Reconstruction | py | cpp | java | π¬ Watch |
| Minimum Vertex Cut | py | cpp | java | π¬ Watch |
| Bipartite Independent Set | py | cpp | java | π¬ Watch |
| Transitive Closure | py | cpp | java | π¬ Watch |
| Multi-Source BFS | py | cpp | java | π¬ Watch |
| Weighted Union-Find | py | cpp | java | π¬ Watch |
| Flood Fill | py | cpp | java | π¬ Watch |
| SPFA (Shortest Path Faster) | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| BST Insert | py | cpp | java | π¬ Watch |
| BST Search | py | cpp | java | π¬ Watch |
| BST Delete | py | cpp | java | π¬ Watch |
| Inorder Traversal | py | cpp | java | π¬ Watch |
| Preorder Traversal | py | cpp | java | π¬ Watch |
| Postorder Traversal | py | cpp | java | π¬ Watch |
| Level-order Traversal | py | cpp | java | π¬ Watch |
| AVL Rotations | py | cpp | java | π¬ Watch |
| Heap Insert | py | cpp | java | π¬ Watch |
| Heap Extract Max | py | cpp | java | π¬ Watch |
| Trie Insert & Search | py | cpp | java | π¬ Watch |
| Segment Tree | py | cpp | java | π¬ Watch |
| Fenwick Tree (BIT) | py | cpp | java | π¬ Watch |
| Red-Black Tree | py | cpp | java | π¬ Watch |
| B-Tree Operations | py | cpp | java | π¬ Watch |
| Lowest Common Ancestor | py | cpp | java | π¬ Watch |
| Morris Traversal | py | cpp | java | π¬ Watch |
| Tree Diameter | py | cpp | java | π¬ Watch |
| Lazy Propagation Segment Tree | py | cpp | java | π¬ Watch |
| Binary Lifting (LCA) | py | cpp | java | π¬ Watch |
| Heavy-Light Decomposition | py | cpp | java | π¬ Watch |
| Sparse Table (RMQ) | py | cpp | java | π¬ Watch |
| Persistent Segment Tree | py | cpp | java | π¬ Watch |
| Merge Sort Tree | py | cpp | java | π¬ Watch |
| Wavelet Tree | py | cpp | java | π¬ Watch |
| Li Chao Tree | py | cpp | java | π¬ Watch |
| DSU on Tree (Small-to-Large) | py | cpp | java | π¬ Watch |
| Link-Cut Tree | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Fibonacci | py | cpp | java | π¬ Watch |
| 0/1 Knapsack | py | cpp | java | π¬ Watch |
| Longest Common Subsequence | py | cpp | java | π¬ Watch |
| Coin Change | py | cpp | java | π¬ Watch |
| Matrix Chain Multiplication | py | cpp | java | π¬ Watch |
| Longest Increasing Subsequence | py | cpp | java | π¬ Watch |
| Edit Distance | py | cpp | java | π¬ Watch |
| Rod Cutting | py | cpp | java | π¬ Watch |
| Climbing Stairs | py | cpp | java | π¬ Watch |
| House Robber | py | cpp | java | π¬ Watch |
| Partition Equal Subset Sum | py | cpp | java | π¬ Watch |
| Word Break | py | cpp | java | π¬ Watch |
| Unique Paths | py | cpp | java | π¬ Watch |
| Minimum Path Sum | py | cpp | java | π¬ Watch |
| Palindrome Partitioning | py | cpp | java | π¬ Watch |
| Egg Drop Problem | py | cpp | java | π¬ Watch |
| Decode Ways | py | cpp | java | π¬ Watch |
| Maximal Square | py | cpp | java | π¬ Watch |
| Digit DP | py | cpp | java | π¬ Watch |
| Convex Hull Trick | py | cpp | java | π¬ Watch |
| Bitmask DP (TSP) | py | cpp | java | π¬ Watch |
| Tree DP (Max Independent Set) | py | cpp | java | π¬ Watch |
| Interval DP (Matrix Chain) | py | cpp | java | π¬ Watch |
| Knuth Optimization (Optimal BST) | py | cpp | java | π¬ Watch |
| Divide & Conquer Optimization | py | cpp | java | π¬ Watch |
| Profile Dynamic Programming | py | cpp | java | π¬ Watch |
| SOS DP (Sum Over Subsets) | py | cpp | java | π¬ Watch |
| Subset Convolution | py | cpp | java | π¬ Watch |
| Multi-Constraint Digit DP | py | cpp | java | π¬ Watch |
| Tree Rerooting DP | py | cpp | java | π¬ Watch |
| LIS Reconstruction | py | cpp | java | π¬ Watch |
| Knapsack Optimizations | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Activity Selection | py | cpp | java | π¬ Watch |
| Huffman Coding | py | cpp | java | π¬ Watch |
| Fractional Knapsack | py | cpp | java | π¬ Watch |
| Job Sequencing | py | cpp | java | π¬ Watch |
| Coin Change (Greedy) | py | cpp | java | π¬ Watch |
| Interval Scheduling | py | cpp | java | π¬ Watch |
| Minimum Platforms | py | cpp | java | π¬ Watch |
| Optimal Merge Pattern | py | cpp | java | π¬ Watch |
| Gas Station | py | cpp | java | π¬ Watch |
| Jump Game | py | cpp | java | π¬ Watch |
| Task Scheduler | py | cpp | java | π¬ Watch |
| Best Time to Buy/Sell Stock | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| N-Queens | py | cpp | java | π¬ Watch |
| Sudoku Solver | py | cpp | java | π¬ Watch |
| Rat in a Maze | py | cpp | java | π¬ Watch |
| Subset Sum | py | cpp | java | π¬ Watch |
| Permutations | py | cpp | java | π¬ Watch |
| Combination Sum | py | cpp | java | π¬ Watch |
| Word Search | py | cpp | java | π¬ Watch |
| Knight's Tour | py | cpp | java | π¬ Watch |
| M-Coloring Problem | py | cpp | java | π¬ Watch |
| Hamiltonian Cycle (BT) | py | cpp | java | π¬ Watch |
| Crossword Solver | py | cpp | java | π¬ Watch |
| Letter Combinations | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| KMP Pattern Matching | py | cpp | java | π¬ Watch |
| Rabin-Karp | py | cpp | java | π¬ Watch |
| Longest Palindromic Substring | py | cpp | java | π¬ Watch |
| String Reversal | py | cpp | java | π¬ Watch |
| Anagram Check | py | cpp | java | π¬ Watch |
| Z Algorithm | py | cpp | java | π¬ Watch |
| Manacher's Algorithm | py | cpp | java | π¬ Watch |
| Suffix Array | py | cpp | java | π¬ Watch |
| Aho-Corasick | py | cpp | java | π¬ Watch |
| Boyer-Moore | py | cpp | java | π¬ Watch |
| Levenshtein Distance | py | cpp | java | π¬ Watch |
| Longest Repeated Substring | py | cpp | java | π¬ Watch |
| Run-Length Encoding | py | cpp | java | π¬ Watch |
| Suffix Automaton | py | cpp | java | π¬ Watch |
| Kasai's Algorithm | py | cpp | java | π¬ Watch |
| Suffix Tree (Compressed) | py | cpp | java | π¬ Watch |
| Eertree (Palindromic Tree) | py | cpp | java | π¬ Watch |
| Rolling Hash (Polynomial) | py | cpp | java | π¬ Watch |
| Aho-Corasick Failure Links | py | cpp | java | π¬ Watch |
| Suffix Array + LCP | py | cpp | java | π¬ Watch |
| Booth's Algorithm | py | cpp | java | π¬ Watch |
| Palindromic Tree Applications | py | cpp | java | π¬ Watch |
| Rolling Hash Collision Demo | py | cpp | java | π¬ Watch |
| Suffix Automaton Applications | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Insertion | py | cpp | java | π¬ Watch |
| Deletion | py | cpp | java | π¬ Watch |
| Reversal | py | cpp | java | π¬ Watch |
| Cycle Detection | py | cpp | java | π¬ Watch |
| Merge Two Sorted Lists | py | cpp | java | π¬ Watch |
| Nth from End | py | cpp | java | π¬ Watch |
| Palindrome Check | py | cpp | java | π¬ Watch |
| Find Intersection | py | cpp | java | π¬ Watch |
| Remove Duplicates | py | cpp | java | π¬ Watch |
| Flatten Multi-Level List | py | cpp | java | π¬ Watch |
| Add Two Numbers | py | cpp | java | π¬ Watch |
| Rotate List | py | cpp | java | π¬ Watch |
| Sort Linked List | py | cpp | java | π¬ Watch |
| Copy with Random Pointer | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Binary Search (D&C) | py | cpp | java | π¬ Watch |
| Maximum Subarray | py | cpp | java | π¬ Watch |
| Closest Pair of Points | py | cpp | java | π¬ Watch |
| Strassen's Multiplication | py | cpp | java | π¬ Watch |
| Karatsuba Multiplication | py | cpp | java | π¬ Watch |
| Quick Select | py | cpp | java | π¬ Watch |
| Convex Hull | py | cpp | java | π¬ Watch |
| FFT (Fast Fourier Transform) | py | cpp | java | π¬ Watch |
| Mo's Algorithm | py | cpp | java | π¬ Watch |
| Cartesian Tree | py | cpp | java | π¬ Watch |
| Centroid Decomposition | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Count Set Bits | py | cpp | java | π¬ Watch |
| Power of Two Check | py | cpp | java | π¬ Watch |
| Single Number (XOR) | py | cpp | java | π¬ Watch |
| Reverse Bits | py | cpp | java | π¬ Watch |
| Subsets via Bitmask | py | cpp | java | π¬ Watch |
| Hamming Distance | py | cpp | java | π¬ Watch |
| Swap Without Temp | py | cpp | java | π¬ Watch |
| Missing Number (XOR) | py | cpp | java | π¬ Watch |
| Counting Bits (DP) | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Euclidean GCD | py | cpp | java | π¬ Watch |
| Sieve of Eratosthenes | py | cpp | java | π¬ Watch |
| Fast Exponentiation | py | cpp | java | π¬ Watch |
| Prime Factorization | py | cpp | java | π¬ Watch |
| Modular Arithmetic | py | cpp | java | π¬ Watch |
| Catalan Numbers | py | cpp | java | π¬ Watch |
| Chinese Remainder Theorem | py | cpp | java | π¬ Watch |
| Euler's Totient | py | cpp | java | π¬ Watch |
| Miller-Rabin Primality | py | cpp | java | π¬ Watch |
| Extended Euclidean GCD | py | cpp | java | π¬ Watch |
| Fibonacci (Matrix Exp) | py | cpp | java | π¬ Watch |
| Number Theoretic Transform | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Chaining | py | cpp | java | π¬ Watch |
| Linear Probing | py | cpp | java | π¬ Watch |
| Quadratic Probing | py | cpp | java | π¬ Watch |
| Double Hashing | py | cpp | java | π¬ Watch |
| Two Sum (Hash Map) | py | cpp | java | π¬ Watch |
| Cuckoo Hashing | py | cpp | java | π¬ Watch |
| Robin Hood Hashing | py | cpp | java | π¬ Watch |
| Frequency Count | py | cpp | java | π¬ Watch |
| Group Anagrams | py | cpp | java | π¬ Watch |
| LRU Cache | py | cpp | java | π¬ Watch |
| Consistent Hashing | py | cpp | java | π¬ Watch |
| Count-Min Sketch | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Graham Scan | py | cpp | java | π¬ Watch |
| Jarvis March | py | cpp | java | π¬ Watch |
| Line Intersection | py | cpp | java | π¬ Watch |
| Polygon Area (Shoelace) | py | cpp | java | π¬ Watch |
| Point in Polygon | py | cpp | java | π¬ Watch |
| Closest Pair (D&C) | py | cpp | java | π¬ Watch |
| Voronoi Diagram | py | cpp | java | π¬ Watch |
| Delaunay Triangulation | py | cpp | java | π¬ Watch |
| Sweep Line Intersections | py | cpp | java | π¬ Watch |
| Rotating Calipers | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Pollard's Rho | py | cpp | java | π¬ Watch |
| Lucas' Theorem | py | cpp | java | π¬ Watch |
| MΓΆbius Function | py | cpp | java | π¬ Watch |
| Discrete Logarithm | py | cpp | java | π¬ Watch |
| Primitive Root | py | cpp | java | π¬ Watch |
| Quadratic Residue | py | cpp | java | π¬ Watch |
| Stern-Brocot Tree | py | cpp | java | π¬ Watch |
| Continued Fractions | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Monte Carlo (Ο) | py | cpp | java | π¬ Watch |
| Las Vegas Sort | py | cpp | java | π¬ Watch |
| Reservoir Sampling | py | cpp | java | π¬ Watch |
| Skip List | py | cpp | java | π¬ Watch |
| Bloom Filter | py | cpp | java | π¬ Watch |
| Miller-Rabin (Randomized) | py | cpp | java | π¬ Watch |
| Karger's Min Cut | py | cpp | java | π¬ Watch |
| Fisher-Yates Shuffle | py | cpp | java | π¬ Watch |
| Treap | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Ford-Fulkerson | py | cpp | java | π¬ Watch |
| Edmonds-Karp | py | cpp | java | π¬ Watch |
| Dinic's Algorithm | py | cpp | java | π¬ Watch |
| Hungarian Algorithm | py | cpp | java | π¬ Watch |
| Hopcroft-Karp | py | cpp | java | π¬ Watch |
| Min-Cost Max Flow | py | cpp | java | π¬ Watch |
| Gale-Shapley (Stable Matching) | py | cpp | java | π¬ Watch |
| Push-Relabel | py | cpp | java | π¬ Watch |
| Algorithm | Python | C++ | Java | Visualization |
|---|---|---|---|---|
| Two Sum | py | cpp | java | π¬ Watch |
| Container With Most Water | py | cpp | java | π¬ Watch |
| Sliding Window Maximum | py | cpp | java | π¬ Watch |
| Longest Substring Without Repeating | py | cpp | java | π¬ Watch |
| Linked List Cycle | py | cpp | java | π¬ Watch |
| Merge Intervals | py | cpp | java | π¬ Watch |
| Find Missing Number | py | cpp | java | π¬ Watch |
| Reverse Linked List | py | cpp | java | π¬ Watch |
| Binary Tree Level Order | py | cpp | java | π¬ Watch |
| Binary Tree Path Sum | py | cpp | java | π¬ Watch |
| Find Median from Data Stream | py | cpp | java | π¬ Watch |
| Kth Largest Element | py | cpp | java | π¬ Watch |
| Subsets (Power Set) | py | cpp | java | π¬ Watch |
| Search in Rotated Sorted Array | py | cpp | java | π¬ Watch |
| Number of Islands | py | cpp | java | π¬ Watch |
| Course Schedule | py | cpp | java | π¬ Watch |
| Implement Trie (Prefix Tree) | py | cpp | java | π¬ Watch |
| Daily Temperatures | py | cpp | java | π¬ Watch |
| Spiral Matrix | py | cpp | java | π¬ Watch |
| Merge K Sorted Lists | py | cpp | java | π¬ Watch |
| Boyer-Moore Majority Vote | py | cpp | java | π¬ Watch |
| Sliding Window Minimum | py | cpp | java | π¬ Watch |
| Next Greater Element | py | cpp | java | π¬ Watch |
| Rotate Image | py | cpp | java | π¬ Watch |
g++ -std=c++17 sorting/bubble-sort/solution.cpp -o bubble
javac graphs/bfs/Solution.java
python3 sorting/bubble-sort/solution.pyCode in this repository is released under the MIT License β provided for learning purposes. The Stepsort platform itself remains Β© 2026 Prakash Raj.