Watch algorithms work, one step at a time.
Pick an algorithm, press play, and follow every comparison and swap next to the line of code that caused it. Six families, seven languages, every step on screen.
Each comparison lights two bars, each swap flashes them, and settled bars turn green. Run bubble, insertion, merge, quick and heap sort on the same input.
Open Sorting →Families
06 / 56Click a family to open it; the preview above rotates every 30 sBars by value. Compare, swap, settle. From bubble sort to quick sort and the races between them.
Linear, binary, jump and interpolation search over a sorted array, with low, mid and high pointers.
BFS, Dijkstra and A* across grids and mazes you draw. Frontier spreading, path drawn back.
Traversals, shortest paths, spanning trees and topological order on draggable nodes.
BST, AVL, red-black and heaps. Insertions walk the tree, rotations animate.
Minimax and alpha-beta pruning on a game tree next to the board. Pruned branches fade out.
Signatures
A* on the real streets of Cascavel
Four thousand intersections from OpenStreetMap, one-way streets respected. The search glows out from the start, the route is drawn back in violet. Open it to step through A*, Dijkstra and BFS on the same route.
Insert documents, build the index on age, then run find and watch the pages it reads instead of the whole collection.
A dictionary of real words in a trie. Every character you type walks one edge; the completions are the subtree that is left.
Paste a dependency list, run Kahn's algorithm and get the install order a package manager would use. Add a cycle and watch it refuse.
Type a misspelled git command. The DP table fills for every candidate and the closest one wins, exactly as git's help.c does it.
Twenty-five cities, candidate roads to their nearest neighbours in kilometres, and Kruskal picking the ones that connect everyone for the least asphalt.
You play X, the engine plays O with alpha-beta. Each of its moves shows the candidates it scored, the nodes it searched and the replies it expects.
Jam a share of the streets and let Dijkstra minimise time. The fastest route detours around the amber streets; the shortest one is drawn beside it for comparison.