Cells explored is how much of the maze the search had to look at. Peak frontier is how many cells it held
in memory at once. Solve time is real CPU time, measured over repeated un-instrumented runs (best of N) — which
is why Dijkstra can be slower than BFS while exploring exactly the same cells: it pays for a priority queue.
Every search runs to completion the instant you press Race — the animation is a recorded replay, advancing each
algorithm at the same cells-per-frame, so what you watch is explored-cells, not wall-clock time. Times are single-threaded
JavaScript in this browser; compiled C on the same maze would be several times quicker again.