Mike Bostock, the author of d3.js, has a similar post in which he uses angled sticks to indicate sorting order, and also touches on some other algorithmic visualizations.<p><a href="https://bost.ocks.org/mike/algorithms/" rel="nofollow">https://bost.ocks.org/mike/algorithms/</a>
The use of the vertical axis here is brilliant! I've seen visualizations where time is one of the axes, but showing a random sampling of arrays really lets you see the "ensemble behavior" of the algorithms.
My favorites have always been the folk dance versions!<p><a href="https://www.youtube.com/watch?v=ROalU379l3U" rel="nofollow">https://www.youtube.com/watch?v=ROalU379l3U</a>
I really wish the frame rate was every n comparisons or seconds instead of the rate of the outer loop. In the first four, the boundary between sorted and unsorted should accelerate and the progression of merge sort should be constant. Heapsort should also accelerate, but at a different rate from the n^2 sorts. It would be so much more satisfying.
Good stuff, except for the rainbow color scales [1]. I'd much prefer to see the same in viridis [2] or something similar. The color boundaries on the rainbow scale are not perceived uniformly by human eyes (there might even be a cultural bias at play, i.e. we may distinguish blue from green more readily than different shades of blue, even if they may be objectively at the same distance)<p>[1] <a href="https://visual.ly/blog/rainbow-color-scales/" rel="nofollow">https://visual.ly/blog/rainbow-color-scales/</a><p>[2] <a href="https://cran.r-project.org/web/packages/viridis/vignettes/intro-to-viridis.html" rel="nofollow">https://cran.r-project.org/web/packages/viridis/vignettes/in...</a><p>Edit:<p>Here's my demo, in Viridis: <a href="http://gph.is/2xZnKxl" rel="nofollow">http://gph.is/2xZnKxl</a><p>(Generated in ipython + numpy + matplotlib + seaborn)
I like this project, reminds me a lot of <a href="https://www.youtube.com/watch?v=kPRA0W1kECg" rel="nofollow">https://www.youtube.com/watch?v=kPRA0W1kECg</a><p>What was used to generate the gifs?
one of my favourite <a href="https://www.youtube.com/watch?v=bcwwM6EoveA" rel="nofollow">https://www.youtube.com/watch?v=bcwwM6EoveA</a>
Compared to other visualization, having the extra axis dimension just means what, that the sorting is being done as if each row was an independent sort, and all rows are being sorted simultaneously?
That was a lot of fun. I remember seeing the visualisations from lowest to highest on a bar chart but this gives a different perspective on how the algorithms work.
just throwing this out there. found it was not clear how to count operations for more complex algos<p><a href="http://greggman.github.io/doodles/sort.html" rel="nofollow">http://greggman.github.io/doodles/sort.html</a>
These are neat but it's a bit odd to call heapsort and mergesort bizarre. Sure if you just think about them as operating on arrays they would seem strange, but if you think about them more abstractly they make complete sense.
What are the odds, just posted one myself with audio, and intended to have level of details but there are just balls and bars at the moment.<p>Think I'll adopt a color scale for the denser datasets, looks great.